天天看點

apache+tomcat叢集 負載均衡 session共享

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 />