經(jīng)過(guò)我的多次測(cè)試實(shí)踐,在Linux和window下測(cè)試通過(guò),win的比較簡(jiǎn)單,因?yàn)樵谀J(rèn)的情況下,組播就已經(jīng)打開(kāi)。
1 在Linux 下同一臺(tái)服務(wù)器上測(cè)試通過(guò)(注意端口不要沖突。特別要注意那個(gè)tcpListenPort=”4001″ )
2 在window下的同一臺(tái)服務(wù)器上測(cè)試通過(guò),注意要點(diǎn)同上
3 window下多臺(tái)不同主機(jī)上測(cè)試通過(guò),沒(méi)有什么好注意點(diǎn),可以完全備份一個(gè)tomcat
4.Linux多臺(tái)不同tomcat服務(wù)器上測(cè)試通過(guò)。這個(gè)也是最后實(shí)現(xiàn),最實(shí)際的方案。(一般不用在win下部署tomcatweb應(yīng)用。呵呵。我覺(jué)得)
這里講下第四中情況
先講一下環(huán)境:都是在Red Hat Linux AS4上測(cè)試通過(guò)
Apache:ip:192.168.1.11 (一臺(tái)) 版本:2.0/2.2 (做均換負(fù)載服務(wù)器)
Tomcat:ip1:192.168.1.12 ip2:192.168.1.13 (兩臺(tái)) 版本:5.0、5.5 (web應(yīng)用的Real Server)
Jdk:版本1.5 安裝在 192.168.1.12 和192.168.1.13上的tomcat服務(wù)器上
安裝tomcat和apache ,在這里就不講了。
軟件都可以在www.apache.org 的網(wǎng)站上找到(apache,tomcat,mod_jk)
1.下載mod_jk.so 文件放到apache 下的modules下
地址:http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/ 請(qǐng)選擇正確的操作系統(tǒng)和Apache的版本。
2.在apache的conf下建立文件workers.properties
添加內(nèi)容:
#
# 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下添加一個(gè)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.增加一個(gè)虛擬機(jī)配置文件vhosts.conf (這個(gè)不是必須的,可以將JkMount 的寫(xiě)其他的配置文件中)
ServerAdmin webmaster@dummy-host.example.com
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集群功能。
一般不需要修改什么東西,但在我這邊,兩臺(tái)Linux的tomcat就是死活找不到node,而同樣的配置文件在window下的跑得很是正常。
有個(gè)東西要說(shuō)明下,因?yàn)閠omcat的session同步功能需要用到組播,windows默認(rèn)情況下是開(kāi)通組播服務(wù)的,但是Linux默認(rèn)情況下并沒(méi)有開(kāi)通,可以通過(guò)指令打開(kāi)route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0,如果需要服務(wù)器啟動(dòng)時(shí)即開(kāi)通組播需在/etc/sysconfig/static-routes文件內(nèi)加入eht0 net 224.0.0.0 netmask 240.0.0.0。具體組播概念請(qǐng)查閱CCNP相關(guān)內(nèi)容。
可以通過(guò)netstate -g 來(lái)查看組播狀態(tài),也可以在route -e 命令中看到
原來(lái)一直提示這個(gè)問(wèn)題
信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.
最后測(cè)試只要修改在Cluster之間的一段代碼
Receiver
className="
org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
改為
Receiver
className="
org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="192.168.1.12"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
在13的服務(wù)器上也將這一段修改為自己的ip
然后打開(kāi)jvmRoute ,跟workers.properties 的兩個(gè)tomcat名字相匹配
ip1
Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat12"/>
ip2
Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat13"/>
好了,apache和tomcat的配置好了,可以訪問(wèn)了。
這里,再提供一個(gè)鏈接,可以監(jiān)控和配置負(fù)載均衡的各種信息
http://192.168.1.11/jkstatus或http://my.Linuxcoffee.org、jkstatus來(lái)訪問(wèn)網(wǎng)站。
注:需要在web.xml的display-name后面 下加上一段。 這個(gè)跟順序有關(guān)的,不然,xml文件會(huì)變紅哦。
xml version="1.0" encoding="UTF-8"?>
web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
display-name>TomcatDemodisplay-name>
distributable/>
web-app>