1. 方法一:通过mod_jk集群
1.1 mod_jk下载
从http://www.apache.org/dist/tomcat/tomcat-connectors/jk//binaries下载mod_jk-*.so文件,mod_jk-*.so文件的版本最好与apache的版本对应。
目前mod_jk的最高版本为2.2.6,而apache的最高版本为2.2.9,2.2.6以上的apache用2.2.6的mod_jk即可。
mod_jk详细信息参见http://tomcat.apache.org/connectors-doc/reference/workers.html
1.2 tomcat配置
以集群2个装在同一台计算机上的tomcat为例,暂不考虑tomcat之间的session复制问题。
(1)jdk及tomcat安装
见“jkd安装配置.doc”及“tomcat安装配置.doc”
(2)设置tomcat的jvmRoute值
在server.xml中配置Engine的jvmRoute,例如:<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1" >,jvmRoute的名称要和workers.properties(见1.3 apache配置)中匹配,且集群中的每一个tomcat节点都有自己的jvmRoute名称,不能重复。
1.3 apache配置
(1)将下载的mod_jk-*.so复制到apache的modules目录中
(2)修改httpd.conf,向其中加入“include conf/mod_jk.conf”(不含引号)
(3)在conf目录创建mod_jk.conf文件,文件内容如下
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* controller
“JkMount /* controller”中的controller名称可自定义,只要保证与workers.properties中的配置一致即可
(4)在conf目录创建workers.properties文件,文件内容如下
worker.list=controller,jvml
#========jvm1========
worker. jvm1.type=ajp13
worker. jvm1.port=8609
worker. jvm1.host=10.1.78.28
worker. jvm1.lbfactor=1
#========jvm2========
#worker.jvm2.type=ajp13
#worker jvm2.port=8619
#worker. jvm2.host=10.1.78.28
#worker. jvm2.lbfactor=1
#========controller========
worker.controller.type=lb
worker.controller.balance_workers=jvml
worker.controller.sticky_session=1
jvm1和jvm2分别为两个tomcat中server.xml配置文件设置的jvmRoute值;
worker. jvm1.port对应的值为tomcat(server.xml中jvmRoute值为jvm1)的ajp端口;
worker. jvm1.host对应的值为tomcat(server.xml中jvmRoute值为jvm1)所在的机器IP或机器域名;
2. 方法二:通过apache代理配置集群
见http://blog.chinaunix.net/u/22176/showart_1002535.html
http://oxen.blogdriver.com/oxen/1062345.html
Tomcat集群的三种负载均衡方式优缺点对照