集群(其实谈不上,不过是多部署了几个tomcat服务器,用jk/jk2负责负载平衡,而且关于负载平衡我还不大了解,只是我不清楚该怎么称谓,暂且用这个怪吓人的名字)的结构:3台机器,机器A部署了Win2000pro+Tomcat(jvmRoute:tomcat1,以下如同)和apache,机器B、C(操作系统都是WinXp)分别各部署了一个Tomcat服务器(tomcat2,tomcat3)
1、 mod_jk2作为连接器插件的服务器整合
服务器环境:Windows2000 profession + apache_2.0.54 + tomcat_4.1.18
连接器插件:mod_jk2.so (version 2.0.4终结版 apache组织计划在apache2.1/2.2版本中将实现该连接器)
整合过程:
a) 下载apache和mod_jk2(在apache的官方网站上即可 ,以下连接仅供参考:
apache:http://httpd.apache.org/download.cgi
mod_jk2:http://apache.justdn.org/jakarta/tomcat-connectors/jk2/binaries/win32/
)
b) 安装apache_2.0.54,安装目录假设为C: \apache2(以下用APACHE_HOME代表);将下载的连接器压缩包解压后找到mod_jk2.so文件,将其拷贝至APACHE_HOME\modules目录下
c) 配置jk2:
修改APACHE_HOME\conf\目录下的httpd.conf文件配置如下:
#在文件中LoadModule部分增加以下代码
LoadModule jk2_module modules/mod_jk2.so #加载插件
在APACHE_HOME\conf\目录下建立workers2.properties文件配置如下: # Define the communication channel
[channel.socket:10.0.0.33:8009]
info=Ajp13 forwarding over socket #配置第一个服务器
tomcatId=tomcat1 #必须和tomcat服务其中server.xml中对Engine元素中的#jvmRoute的设置一样,即在server.xml中的设置如下:
#<Engine name="Standalone" defaultHost="localhost" #debug="0" jvmRoute="tomcat1">
#这个名字必须唯一,保证集群中的tomcat服务器不能同 #名
debug=0
lb_factor=1 #负载平衡因子,数字越大请求被分配的几率越高
# Define the communication channel
[channel.socket:10.0.0.16:8009]
info=Ajp13 forwarding over socket #配置第二个服务器
tomcatId=tomcat2
debug=0
lb_factor=1
# Define the communication channel
[channel.socket:10.0.0.31:8009]
info=Ajp13 forwarding over socket #配置第三个服务器
tomcatId=tomcat3
debug=0
lb_factor=1
[status:]
info=Status worker, displays runtime information.
# Map the Tomcat examples webapp to the Web server uri space
#用于显示各个服务器的接收的请求状态(表述可能不准)
[uri:/jkstatus.jsp]
info=Display status information and checks the config file for changes.
group=status:
# Map the Tomcat examples webapp to the Web server uri space
#映射tomcat中的应用即Context,由于我们的应用是放在tomcat的webapps/root目录 #下的,所以 uri设置为 /*,如果为应用 B,且部署在webapps/B,则uri设置为/B/*
[uri:/*]
info=Map the whole webapp
debug=0
d) 分别启动tomcat服务器和apache服务器(注意:必须保证每台Tomcat服务器都在Engine中设置了正确的jvmRoute,这样负载平衡才有作用),然后就可以试试你的部署了,你可以在apache服务器所在机器上通过http://localhost/jkstatus.jsp 来查看你部署的tomcat的接收请求的情况及负载情况(这里我忽略了各个服务器的端口设置及其他内容的设置)
2、 mod_jk作为连接器插件的服务器整合
服务器环境:Windows2000 profession + apache_2.0.54 + tomcat_4.1.18
连接器插件:mod_jk-1.2.10-apache-2.0.53.so (version 1.2.10)
整合过程:
a) 下载apache和mod_jk(在apache的官方网站上即可 ,以下连接仅供参考:
apache:http://httpd.apache.org/download.cgi
mod_jk2:http://apache.justdn.org/jakarta/tomcat-connectors/jk/binaries/win32/jk-1.2.10/
)
b) 安装apache_2.0.54,安装目录假设为C: \apache2(以下用APACHE_HOME代表);将下载的连接器压缩包解压后找到mod_jk-1.2.10-apache-2.0.53.so文件,将其拷贝至APACHE_HOME\modules目录下
c) 配置jk2:
修改APACHE_HOME\conf\目录下的httpd.conf文件配置如下:
#在文件中LoadModule部分增加以下代码
LoadModule jk_module modules/mod_jk-1.2.10-apache-2.0.53.so #加载插件
JkWorkersFile conf/workers.properties #指定jk配置文件位 #置
JkLogFile logs/mod_jk-1.2.10-apache-2.0.53.log #指定jk日志的位置
JkLogLevel debug #日志记录级别
JkMount /* tomcat #“/*”表示用于tomca #处理的应用 ;“tomcat”是出现在#workers.properties文件中worker.list后面 #出现的值
JkMount /jkstatus.jsp jkstatus #用于显示各个服务器的接收的请求状态 #(表述可能不准)
在APACHE_HOME\conf\目录下建立workers.properties文件配置如下: workers.tomcat_home=E:\Tomcat 4.1 #让mod_jk模块知道Tomcat
workers.java_home=D:\j2sdk1.4.2 #让mod_jk模块知道j2sdk
ps=\ #指定文件路径分割符
worker.list=tomcat,jkstatus #指定处理web应用的tomcat服务器列表,可以是实 #际的tomcat服务器,也可以是负责负载平衡的“虚”#服务器(它是实际服务器组的管理者)
worker.tomcat.method=R #指定jk转发请求的方式,T表示根据网络特性选择提 #供服务的tomcat服务器,R表示根据请求数量和负载因#子转发,缺省为R(理解可能有误)
worker.tomcat1.port=8009 #工作端口,若没占用则不用修改
worker.tomcat1.host=localhost #Tomcat服务器的地址
worker.tomcat1.type=ajp13 #类型
worker.tomcat1.lbfactor=1 #负载平衡因数
worker.tomcat2.port=8009 #工作端口,若没占用则不用修改
worker.tomcat2.host=10.0.0.16 #Tomcat服务器的地址
worker.tomcat2.type=ajp13 #类型
worker.tomcat2.lbfactor=2 #负载平衡因数
worker.tomcat3.port=8009 #工作端口,若没占用则不用修改
worker.tomcat3.host=10.0.0.31 #Tomcat服务器的地址
worker.tomcat3.type=ajp13 #类型
worker.tomcat3.lbfactor=2 #负载平衡因数
worker.tomcat.type=lb #表明这个worker负责负载平衡
worker.tomcat.balance_workers=tomcat1,tomcat2,tomcat3 # lb类型的worker管理的实际#部署的tomcat服务器, 它的 #名称必须与tomcat服务器中的#Server.xml中Engine元素的#jvmRoute设置必须相同,并且#在balance_workers中出现的这#些值不能出现在worker.list 中
worker.jkstatus.type=status #表明这个worker负责显示集群状态
d) 分别启动tomcat服务器和apache服务器(注意:必须保证每台Tomcat服务器都在Engine中设置了正确的jvmRoute,这样负载平衡才有作用),然后就可以试试你的部署了,你可以在apache服务器所在机器上通过http://localhost/jkstatus.jsp 来查看你部署的tomcat的接收请求的情况及负载情况(这里我忽略了各个服务器的端口设置及其他内容的设置)
参考资料:
Tomcat权威指南 O’REILLY 中国电力出版社
在http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html和
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/workers.html中可以找到关于jk设置的详细说明,有些可能由于本人的英语水平导致的问题您可以在这里找到正确的解答