日期:2014-05-17 浏览次数:20787 次
简单总结
Apache2.2.4、tomcat 5.5.27 实现负载均衡集群和session共享
?
一、负载均衡
1.安装Apache2.2.4
?
2.将mod_jk-apache-2.2.4.so拷贝到modules目录下
jk是mod_jserv的替代者,是tomcat-apache差紧急啊,处理tomcat和apache间的通信,在集群配置中充当负载均衡的作用,jk要与apache的版本对应匹配才行。
?
3.在conf目录下创建workers.properties,此文件是jk的配置文件,和httpd.conf放在同一目录
添加以下内容
?
?
#server 列表
worker.list=controller,tomcat1,tomcat2,tomcat3,tomcat4
#========tomcat1========
#ajp13 端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.port=8010
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=192.168.20.19
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor=1
?
#========tomcat2========
#ajp13 端口号,在tomcat下server.xml配置,默认8009(同一机器上的多个tomcat需修改端口)
worker.tomcat2.port=8010
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat2.host=192.168.20.20
worker.tomcat2.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat2.lbfactor=1
?
#========tomcat3========
#ajp13 端口号,在tomcat下server.xml配置,默认8009(同一机器上的多个tomcat需修改端口)
worker.tomcat3.port=8010
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat3.host=192.168.20.21
worker.tomcat3.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat3.lbfactor=1
?
#========tomcat4========
#ajp13 端口号,在tomcat下server.xml配置,默认8009(同一机器上的多个tomcat需修改端口)
worker.tomcat4.port=8010
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat4.host=192.168.20.22
worker.tomcat4.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat4.lbfactor=1
?
#========controller,负载均衡控制器========
#server名为controller,用于负载均衡
worker.controller.type=lb
?
#重试次数
worker.retries=3
#指定分担请求的tomcat
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3,tomcat4
#粘性Session(默认是打开的) 当该属性值=True(或1)时,代表Session是粘性的,即同一Session在集群中的同一个节点上处理,Session不跨越节点。在集群环境中,一般将该值设置为False
worker.controller.sticky_session=false
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,也有设置为0才可以的
worker.controller.sticky_session=1
#worker.controller.sticky_session_force=1
#worker.status.type=status
?
?
4.在apache目录conf下新建mod_jk.conf文件,并添加以下信息
?
?
#Load mod_jk.module 加载mod_jk-apache-2.2.4.so
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
?
#Where to find workers.properties
jkWorkersFile conf/workers.properties
?
#Where to put jk logs
jkLogFile logs/mod_jk.log
?
#Set the jk log level[debug/error/info]
jkLogLevel info
?
#Select the log format
#jkLogStampFormat"[%a %b %d %H:%M:%S %Y]"
?
#jkOptions indicate to send SSL KEY SIZE,jkOptions+ForwardKeySize+ForwardURICompat -ForwardDirectories
?
#Send JSPs for context/to worker named controller 设置过滤,controller为集群控制机名
jkMount /* controller #所有url请求,不管有没有后缀都起作用
jkMount /aabb* controller #若不加*则在访问IP:post/aabb后会访问不到,若想访问到则要加'/'如IP:post/aabb/
jkMount /*.* controller?#只有有后缀都url请求起作用
也可制定转发类型
?
jKmount /servlet/* controller
jkMount /*.jsp controller
JkMount /*.do controller
JKMount /*.css controller
JKMount /*.js controller
JKMount /*.png controller
JKMount /*.jpg controller
JKMount /*.gif controller
?
?
?
5.修改apache的conf目录下的httpd.conf文件,在最后一行添加 include ...\mod_jk.conf
如include "C:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
?
二、Tomcat集群
Tomcat集群配置
如果在同一机器上就需要将所有端口号修改为不同避免冲突
当前情况为不在同一机器
?
配置Tomcat A
将server.xml中?<Cluster。。。> </Cluster >的注释去掉
修改Engine 节点为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="