from:http://blog.renren.com/blog/225364398/460826385
感謝啟迪
一台 window XP 上面做tomcat叢集
1、Tomcat的叢集主要是兩個方面:
a、負載均衡(負載均衡有多種方式)
我是用apache來做tomcat負載均衡的。
b、tomcat的session共享
首先做第一個。
軟體清單:
1、Apache2.2.15
2、apache-tomcat-5.5.25.zip 直接解壓用的tomcat
3、mod_jk-apache-2.2.4.so(有人說這個版本需要跟apache的版本一緻,但是我這樣也成功了)
4、jdk1.6
1、安裝Apache2.2.15版本,我直接下載下傳的360上面的。非常傻瓜直接點選next。
在安裝完成之後,apache應該是自動起服務的。
你在浏覽器中輸入:http://localhost 應該可以看見it works!
修改
apache conf/httpd.conf
增加
LoadModule jk_module modules/mod_jk-apache-2.2.4.so
JkLogFile logs/mod_jk2.log
JkWorkersFile conf/workers.properties
JkMount /*.jsp controller
在 apache 目錄下面建立
檔案:workers.properties
檔案内容:
worker.list=tomcat1,tomcat2,controller
#========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
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========controller,負載均衡控制器==========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分擔請求的tomcat
worker.controller.sticky_session=1
解壓tomcat,并複制,apache-tomcat-A,apache-tomcat-B(檔案名無所謂)
修改兩個tomcat中server.xml
A - tomcat
<Connector port="8009" 【注意與上面workers.properties檔案中的port一緻】
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
正常情況下:
A - tomcat 隻修改一處
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">【增加jvmRoute,注意與上面的work.list中tomcat名對應】
釋放注釋 Cluster 部分【為做session共享做準備】
B - tomcat 需要修改多一點【主要是一些端口沖突】
<Server port="9005" shutdown="SHUTDOWN"> 【原來8005】
<Connector port="9080" maxHttpHeaderSize="8192" 【原來8080】
<Connector port="9009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 【原來8009】
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2"> 【新增jvmRoute】
釋放注釋 Cluster 部分【為做session共享做準備】
到這裡已經将負載均衡做好了,并且做了session共享的部分工作。
最後在應用的web.xml的<web-app>中增加
<distributable />