所需软件环境:
Apache2.2:http://archive.apache.org/dist/httpd/binaries/win32/
Tomcat5以上:http://apache.freelamp.com/tomcat/tomcat-5/v5.5.28/bin
JK2 1.2:http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/
jkd 1.5以上
端口设置
Apache 80
Tomcat1 8005 8080 8443 8009
Tomcat2 8006 8081 8444 8010
[color=red][size=medium]Apache配置[/size][/color]
1 修改配置文件httpd.conf
把jk2文件mod_jk.so复制到apache目录modules下。
在httpd.conf文件里添加以下几行
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMountFile conf/urimap.properties
2 增加配置文件workers.properties
在apache目录conf创建两个文件workers.properties,内容如下
worker.list=router #配置请求处理server 这里可以配置多个server
参考:http://wenku.baidu.com/view/5a135db91a37f111f1855b7a.html
# Define the LB worker
worker.router.type=lb
worker.router.balance_workers=tomcat1,tomcat2 #指定分担请求的server列表,用逗号分隔
#设置用于负载均衡的server的session可否共享这里如果设置为0在复制session的时候tomcat会报错,但可以进行复制,如果设置为1就没有错误
worker.router.sticky_session=1
# Define 1 real tomcat using ajp13
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
# Define another tomcat using ajp13
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=8010
worker.tomcat2.lbfactor=1
3 增加配置文件urimap.properties
在apache目录conf创建两个文件workers.properties,内容如下
/*.jsp=router #表示所有的jsp文件都由router这个server处理
/*/servlet/*=router
/cluster/*=router
!/*.gif=router #所有以.gif结尾的请求都不由controller这个server处理
这里的"!”类似于java中的"!”,是“非”的意思
把tomcat应用程序的访问URI匹配到jk2的工作条目router。
[color=red]
[size=medium]Tomcat1配置[/size][/color]
1 修改配置文件server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute值要与workers.properties文件中定义的条目worker.tomcat1保持一致。
[color=red][size=medium]Tomcat2配置[/size][/color]
1 修改配置文件server.xml
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8444" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8010"
enableLookups="false" redirectPort="8444" protocol="AJP/1.3" />
上面标注红色的端口值不能与Tomcat1相同,在同一个IP环境中需要保持唯一。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
jvmRoute值要与workers.properties文件中定义的条目worker.tomcat2保持一致。
[color=red][size=medium]
测试[/size][/color]
在两个Tomcat里发布测试应用程序cluster,含有一个index.jsp。
在IE地址栏输入http://localhost/cluster/index.jsp,页面显示为
tomcat1
另外打开IE地址栏输入http://localhost/cluster/index.jsp,页面显示为
tomcat2
[color=red]----------------------------------------------------------------------------[/color]
以上tomcat群集基本配置成功
注意在配置错误恢复 session复制的时候别忘了给web.xml中添加<distributable/>节点
有些还在httpd.conf中配置了mod_jk
### 配置 mod_jk
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
配置参数 端口
Server Port 8005
Connector 8080
Coyote/JK2 AJP Connector 8009
Cluster mcastAddr 228.0.0.4
Cluster mcastPort 45564
tcpListenAddress 本机IP地址
Cluster tcpListenPort 4001
Mcast* 用于广播,所有群集服务器需要填写相同的配置
tcpListen* 本机的IP,群集服务器启动时,会将自己的IP和端口号广播出去,其他群集服务器收到后,响应广播发出者。
参考:
http://www.blogjava.net/gdufo/archive/2012/06/02/379786.html
Apache2.2:http://archive.apache.org/dist/httpd/binaries/win32/
Tomcat5以上:http://apache.freelamp.com/tomcat/tomcat-5/v5.5.28/bin
JK2 1.2:http://labs.xiaonei.com/apache-mirror/tomcat/tomcat-connectors/jk/binaries/
jkd 1.5以上
端口设置
Apache 80
Tomcat1 8005 8080 8443 8009
Tomcat2 8006 8081 8444 8010
[color=red][size=medium]Apache配置[/size][/color]
1 修改配置文件httpd.conf
把jk2文件mod_jk.so复制到apache目录modules下。
在httpd.conf文件里添加以下几行
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMountFile conf/urimap.properties
2 增加配置文件workers.properties
在apache目录conf创建两个文件workers.properties,内容如下
worker.list=router #配置请求处理server 这里可以配置多个server
参考:http://wenku.baidu.com/view/5a135db91a37f111f1855b7a.html
# Define the LB worker
worker.router.type=lb
worker.router.balance_workers=tomcat1,tomcat2 #指定分担请求的server列表,用逗号分隔
#设置用于负载均衡的server的session可否共享这里如果设置为0在复制session的时候tomcat会报错,但可以进行复制,如果设置为1就没有错误
worker.router.sticky_session=1
# Define 1 real tomcat using ajp13
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
# Define another tomcat using ajp13
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=8010
worker.tomcat2.lbfactor=1
3 增加配置文件urimap.properties
在apache目录conf创建两个文件workers.properties,内容如下
/*.jsp=router #表示所有的jsp文件都由router这个server处理
/*/servlet/*=router
/cluster/*=router
!/*.gif=router #所有以.gif结尾的请求都不由controller这个server处理
这里的"!”类似于java中的"!”,是“非”的意思
把tomcat应用程序的访问URI匹配到jk2的工作条目router。
[color=red]
[size=medium]Tomcat1配置[/size][/color]
1 修改配置文件server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute值要与workers.properties文件中定义的条目worker.tomcat1保持一致。
[color=red][size=medium]Tomcat2配置[/size][/color]
1 修改配置文件server.xml
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8444" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8010"
enableLookups="false" redirectPort="8444" protocol="AJP/1.3" />
上面标注红色的端口值不能与Tomcat1相同,在同一个IP环境中需要保持唯一。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
jvmRoute值要与workers.properties文件中定义的条目worker.tomcat2保持一致。
[color=red][size=medium]
测试[/size][/color]
在两个Tomcat里发布测试应用程序cluster,含有一个index.jsp。
在IE地址栏输入http://localhost/cluster/index.jsp,页面显示为
tomcat1
另外打开IE地址栏输入http://localhost/cluster/index.jsp,页面显示为
tomcat2
[color=red]----------------------------------------------------------------------------[/color]
以上tomcat群集基本配置成功
注意在配置错误恢复 session复制的时候别忘了给web.xml中添加<distributable/>节点
有些还在httpd.conf中配置了mod_jk
### 配置 mod_jk
JkWorkersFile conf/workers.properties #加载集群中的workers
JkMountFile conf/uriworkermap.properties #加载workers的请求处理分配文件
JkLogFile logs/mod_jk.log #指定jk的日志输出文件
JkLogLevel warn #指定日志级别
配置参数 端口
Server Port 8005
Connector 8080
Coyote/JK2 AJP Connector 8009
Cluster mcastAddr 228.0.0.4
Cluster mcastPort 45564
tcpListenAddress 本机IP地址
Cluster tcpListenPort 4001
Mcast* 用于广播,所有群集服务器需要填写相同的配置
tcpListen* 本机的IP,群集服务器启动时,会将自己的IP和端口号广播出去,其他群集服务器收到后,响应广播发出者。
参考:
http://www.blogjava.net/gdufo/archive/2012/06/02/379786.html