Apache,Tomcat集群和负载均衡

Apache,Tomcat集群和负载均衡

1,安装“JK”到你的Apache
JK”是Tomcat的连接器项目,它是一个Apache的mod插件,与Tomcat通迅来完成请求喷发,故障检验

,故障切换与恢复,动态加载应用服务器等功能。
可以从这里下载:http://tomcat.apache.org/connectors-doc/
把相应的mod文件Copy到Apache配置的modules文件夹下

2,配置Apache的httpd.conf文件
Apache的httpd.conf文件中添加如下几行:

#加载mod_jk.so插件,必须确保此文件在modules中存在
LoadModule jk_module modules/mod_jk.so

#设置JK的配置文件
JkWorkersFile /usr/local/apach2/conf/workers.properties

#以下两行为日志文件,要确保系统中存在此目录
JkShmFile     /usr/local/apach2/mod_jk.shm
JkLogFile    /usr/local/apach2/mod_jk.log

#设置日志的级别为info
JkLogLevel    info

#日志的时间格式
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

#所有/examples/为开头的请求全部发到loadbalancer中,如果是所有请求则用/*/表示
#loadbalancer在workers.properties中配置
JkMount  /examples/* controller


3,JK的配置文件, workers.properties
在Apache配置通过后,还需要配制JK的负载详细信息, workers.properties文件信息如下:

#以worker为前缀做负载的设置
#list属性,可以自定义的以逗号分隔的Tomcat应用服务器的名称,
#唯一点需要注意的是要与server.xml文件中的Engine标签的jvmRoute属性对应,
#这样JK才能把请求分发到正确的Tomcat上
#最后一个loadbalancer为负载器的名称
worker.list=worker1,worker2,controller

#以下为worker1的属性
#设计与后面应用的连接协议为ajp13
worker.worker1.type=ajp13

#服务器IP或名称
worker.worker1.host=localhost

#要与server.xml文件中ajp协议的端口号一致
worker.worker1.port=8009

#server的加权比重,值越高,分得的请求越多
worker.worker1.lbfactor=1 

#以下为worker2的配置与worker1一样
worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8010
worker.worker2.lbfactor=1 

#设置loadbalancer的类型为lb--负载器
worker.controller.type=lb

#它所包括的群为work1,work2两个应用服务器
worker.loadbalancer.balanced_workers=worker1,worker2

4,配置集群
分别修改两个tomcat配置文件server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute='worker1'>
<Engine name="Catalina" defaultHost="localhost" jvmRoute='worker2'>
只配置负载均衡还不行,还要session复制,也就是说其中任何一个tomcat的添加的session,是要同

步复制到其它tomcat, 集群内的tomcat都有相同的session
在server.xml去掉以下配置的注释
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
并且在你的应用的web.xml加入  <distributable/> 即可

猜你喜欢

转载自zengchunp.iteye.com/blog/1052833