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集群的三种负载均衡方式优缺点对照