Apache + Tomcat + Linux 集羣和均衡負載 (Session 同步複製)

Apache + Tomcat + Linux 集羣和均衡負載 (Session 同步複製)
2010-01-13 11:27
先講一下環境:都是在Red Hat Linux AS4上測試通過
Apache:ip:192.168.1.11 (一臺) 版本:2.0/2.2 (做均換負載服務器)
Tomcat:ip1:192.168.1.12 ip2:192.168.1.13 (兩臺) 版本:5.0、5.5 (web應用的Real Server)
Jdk:版本1.5 安裝在 192.168.1.12 和192.168.1.13上的tomcat服務器上

安裝tomcat和apache ,在這裏就不講了。
軟件都可以在www.apache.org 的網站上找到(apache,tomcat,mod_jk)

1.下載mod_jk.so 文件放到apache 下的modules下
地址:http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/ 請選擇正確的操作系統和Apache的版本。
2.在apache的conf下建立文件workers.properties

添加內容:
#
# workers.properties
#

# list the workers by name
worker.list=tomcatlb, status

# localhost server 1
# ------------------------
worker.tomcat12.port=8009
worker.tomcat12.host=192.168.1.12
worker.tomcat12.type=ajp13
worker.tomcat12.lbfactor=1
worker.tomcat12.connection_pool_timeout=750
worker.tomcat12.socket_keepalive=0
worker.tomcat12.socket_timeout=300000
worker.tomcat12.connect_timeout=10000
worker.tomcat12.reply_timeout=330000

# localhost server 3
# ------------------------
worker.tomcat13.port=8009
worker.tomcat13.host=192.168.1.13
worker.tomcat13.type=ajp13
worker.tomcat13.lbfactor=1
worker.tomcat13.connection_pool_timeout=750
worker.tomcat13.socket_keepalive=0
worker.tomcat13.socket_timeout=300000
worker.tomcat13.connect_timeout=10000
worker.tomcat13.reply_timeout=330000

worker.tomcatlb.type=lb
worker.retries=3
worker.tomcatlb.balanced_workers=tomcat12,tomcat13
worker.tomcatlb.sticky_session=1

worker.status.type=status

3.在conf下添加一個mod_jk.conf文件
LoadModule jk_module modules/mod_jk.so

#configure mod_jk
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug

4.增加一個虛擬機配置文件vhosts.conf (這個不是必須的,可以將JkMount 的寫其他的配置文件中)

ServerAdmin [email protected]
DocumentRoot /data/google
ServerName my.linuxcoffee.org
ErrorLog logs/my.linuxcoffee.org-error_log
CustomLog logs/my.linuxcoffee.org-access_log common
DirectoryIndex index.htm index.html

JkMount /*.jsp tomcatlb
JkMount /*.action tomcatlb
JKMount /jkstatus status


4.修改conf下的httpd.conf文件加上
Include conf/vhosts.conf
Include conf/mod_jk.conf

5.配置tomcat
講Cluster 前的註釋去掉,啓用tomcat集羣功能。
一般不需要修改什麼東西,但在我這邊,兩臺linux的tomcat就是死活找不到node,而同樣的配置文件在window下的跑得很是正常。
有個東西要說明下,因爲tomcat的session同步功能需要用到組播,windows默認情況下是開通組播服務的,但是linux默認情況下並沒有開通,可以通過指令打開route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0,如果需要服務器啓動時即開通組播需在/etc/sysconfig/static-routes文件內加入eht0 net 224.0.0.0 netmask 240.0.0.0。具體組播概念請查閱CCNP相關內容。
可以通過netstate -g 來查看組播狀態,也可以在route -e 命令中看到

原來一直提示這個問題
信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.
最後測試只要修改在Cluster之間的一段代碼

className="
org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

改爲

className="
org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="192.168.1.12"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

在13的服務器上也將這一段修改爲自己的ip

然後打開jvmRoute ,跟workers.properties 的兩個tomcat名字相匹配
ip1


ip2


好了,apache和tomcat的配置好了,可以訪問了。
這裏,再提供一個鏈接,可以監控和配置負載均衡的各種信息
http://192.168.1.11/jkstatus或http://my.linuxcoffee.org、jkstatus來訪問網站。

注:需要在web.xml的display-name後面 下加上一段。 這個跟順序有關的,不然,xml文件會變紅哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章