apache整合tomcat 配置负载均衡
apache mysql
第一步:
找到apache的httpd.conf 文件,加入下面这段话:
#设置Apache与Tomcat之间的连接,让Apache将请求转发到Tomcat中去:
LoadModule jk_module modules/mod_jk.so
#设置worker队列,这个文件中实现负载均衡的配置
JkWorkersFile conf/workers.properties
#设置什么请求交由负载均衡控制器处理
JkMountFile conf/uriworkermap.properties
#指定tomcat监听配置文件地址,也记录了它的错误信息。
JkLogFile "D:\servers\apache-tomcat-6.0.28/logs/mod_jk2.log"
#指定日志级别
JkLogLevel info
第二步:
配置uriworkermap.properties 文件,设置请求转向,以下内容的意思是 将.jsp,.do等请求转移到controller这个worker中去(worker实际上是个负载均衡worker):
/*.*=controller
第三步:
配置 workers.properties文件
# list the workers by name
worker.list=controller
# localhost server 1
# ------------------------
worker. s1.port=8009
worker. s1.host=localhost
worker.s1.type=ajp13
worker.s1.lbfactor = 1
# localhost server 2
# ------------------------
worker. s2.port=8010
worker.s2.host=localhost
worker.s2.type=ajp13
worker.s2.lbfactor = 1
worker.controller.type=lb
worker.controller.balance_workers= s1,s2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
第四步:
找到tomcat启动时的server.xml,因为我是spring source中部署的,所以我启动时,实际上使用的是
org.eclipse.wst.server.core插件来启动tomcat的实例的,假如我插件的目录是 E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\ 那该目录下的每个文件夹都是一个tomcat的文件夹结构,找到对应的server.xml文件修改配置即可。
这可不必太纠结插件,只需要知道这步的操作是找到启动tomcat实例时,用到的server.xml配置文件修改即可。
不同情况,server.xml所在的位置可能不同。
我是在目录:
E:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3 和 tmp4中
1. 将<Engine defaultHost="localhost" name="Catalina">
修改为:<Engine defaultHost="localhost" jvmRoute="s1" name="Catalina">
这里的“s1” 为worker.properties中配置的worker名称。
2. 取消掉这句话的配置,启用集群功能:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
对于另外一个tomcat的server.xml配置文件做同样的修改, 注意名称:
1. 将<Engine defaultHost="localhost" name="Catalina">
修改为:<Engine defaultHost="localhost" jvmRoute="s2" name="Catalina">
这里的“s1” 为worker.properties中配置的worker名称。
2. 取消掉这句话的配置,启用集群功能:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
最后,重启apache后一次,启动tomcat即可,注意观察tomcat启动的日志信息。