日期:2014-05-17  浏览次数:20877 次

Windows下Apache2.2+Tomcat6配置集群、负载均衡、session共享(转载)
公司网站有一个需求:要保证网站7*24小时不间断的运行,服务器更新时,对用户是透明的。



找了一些资料,发现做服务器集群可以解决这个问题,至于其他的好处,可以参考

http://ispring.iteye.com/blog/374272

此篇文章中也有配置方案,但是对Session共享的设置解释不够详细。



在网上又搜索了一些文章,这篇还不错(有图有真相),推荐一下

http://hi.baidu.com/luodaijun/blog/item/5bbe4cfb5ffef864034f56a1.html



这里我把原文摘录一下,部分地方做了修改







环境说明



       Apache: apache_2.2.21     1 个



       Tomcat: apache-tomcat-6.0.29 (zip版) 2个



       mod_jk: mod_jk.so  1个 (tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x)



       mod_jk,注意和apache版本匹配





第一部分:负载均衡



    负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2....去处理



1.安装apche,tomcat

我的安装路径:

D:\Apache2.2

D:\webServer\tomcat_1

D:\webServer\tomcat_2



2.安装mod_jk.so

把mod_jk.so复制到D:\Apache2.2\modules目录下。



3.修改Apache配置文件D:\Apache2.2\conf\httpd.conf

在文件最后加上下面一句话就可以了

Include conf/mod_jk.conf



4.httpd.conf 同目录下新建mod_jk.conf文件,内容如下:

#加载mod_jk Module

LoadModule jk_module modules/mod_jk.so



#指定 workers.properties文件路径

JkWorkersFile conf/workers.properties



#加载workers的请求处理分配文件

JkMountFile conf/uriworkermap.properties



#指定jk的日志输出文件

JkLogFile logs/mod_jk.log



#指定日志级别

JkLogLevel warn



5.在http.conf同目录下新建 workers.properties文件,内容如下

worker.list = controller,tomcat1,tomcat2  #server 列表

#========tomcat1========

worker.tomcat1.port=8009         #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat1.type=ajp13

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

#========tomcat2========

worker.tomcat2.port=9009       #ajp13 端口号,在tomcat下server.xml配置,默认8009

worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址

worker.tomcat2.type=ajp13

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



#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balance_workers=tomcat1,tomcat2   #指定分担请求的tomcat

worker.controller.sticky_session=false





6.在http.conf同目录下新建 uriworkermap.properties文件,内容如下

#所有请求都由controller这个server处理

/*=controller

#所有包含jkstatus请求的都由status这个server处理

/jkmanager/*=jkstatus

#所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思

!/*.gif=controller

!/*.jpg=controller

!/*.png=controller

!/*.bmp=controller

!/*.css=controller

!/*.js=controller

!/*.htm=controller

!/*.html=controller

!/*.swf=controller



7.修改tomcat配置文件server.xml

如果你在不同电脑上安装tomcat,tomcat的安装数量为一个,可以不必修改tomcat配置文件

我这里是在同一台电脑上安装两个tomcat,所以需要更改其中一个的设置

需要修改的端口配置:

(1)<Server port="8005" shutdown="SHUTDOWN">

改为

<Server port="9005" shutdown="SHUTDOWN">

(2)<Connector port="8080" protoco