posts - 40,  comments - 4,  trackbacks - 0

          經過我的多次測試實踐,在linux和window下測試通過,win的比較簡單,因為在默認的情況下,組播就已經打開。
          1 在linux 下同一臺服務器上測試通過(注意端口不要沖突。特別要注意那個tcpListenPort=”4001″ )
          2 在window下的同一臺服務器上測試通過,注意要點同上
          3 window下多臺不同主機上測試通過,沒有什么好注意點,可以完全備份一個tomcat
          4.linux多臺不同tomcat服務器上測試通過。這個也是最后實現,最實際的方案。(一般不用在win下部署tomcatweb應用。呵呵。我覺得)

          這里講下第四中情況

          先講一下環境:都是在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 的寫其他的配置文件中)

          <VirtualHost *:80>
              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
          </VirtualHost>

          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之間的一段代碼

          <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的服務器上也將這一段修改為自己的ip

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

          <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat12"/>

          ip2

          <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat13"/>

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

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

          <?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>TomcatDemo</display-name>
          <distributable/>
          </web-app>

          參考文章:
          Tomcat 5 Home Page
          Clustering Home Page on Tomcat site
          Load Balancer Home Page on Tomcat site

          posted on 2008-01-13 20:48 larryjava 閱讀(1300) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 娄烦县| 卓资县| 金寨县| 霍城县| 马公市| 浦北县| 延吉市| 上饶市| 普定县| 吉木乃县| 大埔区| 晴隆县| 桦川县| 邛崃市| 阿图什市| 龙泉市| 宁德市| 新田县| 蓝山县| 巨鹿县| 航空| 闻喜县| 江达县| 和硕县| 曲周县| 望谟县| 乐平市| 五台县| 安龙县| 嵊州市| 凌海市| 敦煌市| 信丰县| 夏河县| 顺昌县| 囊谦县| 邵武市| 府谷县| 顺义区| 通山县| 腾冲县|