使用tomcat连接器对apache和tomcat进行负载平衡集群(1)

来源:互联网 发布:js parentnode 编辑:程序博客网 时间:2024/05/01 19:08

每个Tomcat worker是一个服务于web server、等待执行servlet的Tomcat实例。例如我们经常使用像Apache之类的web server转发sevlet请求给位于其后面的一个Tomcat进程(也就是前面所说的worker)。这段时间自己亲自机动手用mod_jk对apache和Tomcats进行了负载平衡的设置。

其实整个过程是个非常容易的事情。里面并没有对各个tomcat部署的硬件进行分析和规划。

其实就是使用tomcat连接器,tomcat-connectors对Apache和Tomcat进行负载平衡的设置。

  关于Apache和Tomcat的安装这里就不多说了。

安装JK,其实就是下载 mod_jk 这个Apache服务器的插件。然后解压,安装。

需要注意的是,安装时候,在设置配置的时候一定要使用apache里面的apxs 。至于为什么,到现在我也不知道。感觉上应该是这样配置了才能将其作为apache的一个插件使用。

./configure--with-apxs=/home/work/usr/local/apache2/bin/apxs
注意apxs的路径是你apache目录的bin/apxs

然后就是make 和 make install

之后就是把里面安装生成的mod_jk.so复制到apache下面的modules下面。

接着就是对jk进行部署设置了。

为了让其对tomcat们进行负载,我们在之前还需要在各个tomcat里面修改设置不同的端口,这样才能无冲突方便tomcat connectors对他们进行控制。

在此我们需要修改各个tomcat下的server.xml

修改端口                        <Server port="8005" shutdown="SHUTDOWN">

                                       <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirctPort="8443"/>

修改servlet控制端口     <Connector port="8009" protocol="AJP/1.3"  redirctPort="8443"/>

然后就是,在httpd.conf里面进行对wokers.properties的加载以及mod_jk的设置了。其实很机械化,可以根据个人需求进行修改。

其实在mod_jk里面有个httpd-jk.conf的东西里面说明得很详细了。

#加载jk模块,名字要对应
LoadModule jk_modulemodules/mod_jk-1.2.26-httpd-2.2.6.so
# 加载刚才新建的workers.properties文件
JkWorkersFile conf/workers.properties
# Jk日志文件
JkLogFile logs/mod_jk.log
# Jk日志的级别,参数有[debug/error/info]
JkShmFile logs/mod_jk.shm
JkLogLevel info
# Jk日志的数据格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# Jk的一些配置选项 indicate to send SSL KEYSIZE,
JkOptions +ForwardKeySize +ForwardURICompat-ForwardDirectories
# Jk请求日志的格式
JkRequestLogFormat "%w %V %T"

然后就来配置和使用Tomcat workers了

对workers.properties进行配置

对workers的详细使用以后再说,毕竟这个才是tomcat集群的核心。

总结:整个过程很简单,但是要注意到一些细节。比如开始不小心把apache里面conf的一个mine.type给错删除了,apachectl启动apache也正常。但是80端口不能用,后来在logs里面才发现问题。教训,深刻的教训。勤看日志是个好习惯,不是说说而已,需要多动手,多动眼,多动心。到此为止,睡觉吧!Have a good dream for myself.