开发环境:windows
服务器:tomcat6.0 ,tomcat6.0 ,tomcat6.0 (三台)
准备工具:Apache2.x服务器,mod_jk
到网上把以上文件下载好。
打开Apache安装好的文件目录:conf/httpd.conf 在该文件的底部,添加以下代码
include "D:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
这是一个文件路径,默认是没有这个文件的,所以,需要我们MK.
该文件内容如下
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so #这个就是我们下载的mod_jk文件,放置到Apache目录modules下
JkWorkersFile conf/workers.properties #定义了服务器集群的配置文件workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /* controller
JkMount /*.jsp controller
JkMount /*.action controller
之后,在conf文件夹下面,创建文件workers.properties,文件内容如下
#server
worker.list = controller
#========tomcat4========
worker.tomcat4.port=8009
worker.tomcat4.host=192.168.0.131 #IP地址不可以加http开头,否则会出错
worker.tomcat4.type=ajp13 #使用反代理协议,ajp3,在tomcat的server.xml中
worker.tomcat4.lbfactor = 1
#========tomcat2========
#worker.tomcat2.port=10002
#worker.tomcat2.host=localhost
#worker.tomcat2.type=ajp13
#worker.tomcat2.lbfactor = 1
#worker.tomcat2.activation = disabled
#========tomcat3========
worker.tomcat3.port=10003
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1
#worker.tomcat3.redirect = tomcat2
#就是对某一个tomcat的活动性进行禁用。这句配置的意思是,负载均衡启动的时候,
#其实负载都到tomcat3和tomcat4上面去。Tomcat2默认不参与负载。当tomcat3当掉的时候,
#通过worker.tomcat3.redirect = tomcat2 ,tomcat2就会自己启动起来,
#接替tomcat3继续工作。当然,这样就和负载均衡没有关系了。
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat4,tomcat3#,tomcat4
worker.controller.sticky_session=false # 粘性session,默认为true,不开启共享session,这里设置为false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
至此。Apache已经配置好了。Apache只能处理静态资源,遇到动态资源就会分发给tomcat集群处理了,
如果集群中有更多的tomcat的话,
请在worker.properties中进行配置。(注:当有6个tomcat进行集群的时候,
为了提高性能, worker.properties中的 redirect和activation就可以起到作用。
我们可以对tomcat两两配对,两两互相设置redirect,两个其中一个设置activation. 形成3对,
这样,就可以处理意外宕机的情况,保证6台集群可以继续运行下去。)
接下来就是在本机上布置tomcat服务器了,默认的解压形成的tomcat服务器是不行的,需要进行一些配置,
比如我们上面写的tomcat2, 那么需要把tomcat服务器文件夹改成tomcat2,
之后需要把服务器的文件中所有的tomcat 6.0(我用的是6.0版本),全部修改成tomcat2,之后再dos里面把他加入服务
tomcat2/bin/service.bat install
如此重复,配置其他服务器
tomcat中需要修改server.xml文件,把该文件中的所有端口,ajp3/http1.1 等端口,全部进行修改,ajp3的端口和Apache对应
需要保证修改的端口在所有的服务器集群中的唯一性。
#jvmRoute 用于复制session,该值和Apache里的配置一致
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat3" >
#开启tomcat服务器集群
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
按以上配置,把所有的服务器都进行配置一遍
服务器中的项目,需要加入集群访问的话,需要在项目里面web.xml加入 <distributable/> ,在最底部添加即可
接下来进行测试就可以了。至此,服务器集群的配置就完了。完了。。。完了。。。原来这么简单。。。、