<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-33  文章-0  trackbacks-0

    Apache + Tomcat*2集群 負載平衡(Linux環境)

    說明:一臺apache主機,兩臺tomcat主機

    安裝JDK、安裝Apache、安裝Tomcat、配置Apache代理、配置Tomcat集群

    一、安裝JDK(所有運行Tomcat主機,即web服務器)
      1.下載JDK的bin包,如jdk-1_5_0_02-linux-i586.rpm.bin ,給其添加執行權限,執行#./jdk-1_5_0_02-linux-i586.rpm.bin , 在

    當前目錄生成rpm安裝包,同樣給其添加執行權限。 再執行 #rpm -ivh jdk-1_5_0_02-linux-i586.rpm 出現安裝協議 按<Enter>接受

    即可。
      2.設置環境變量 #vi /etc/profile  在其最后加入

            JAVA_HOME =/ usr / java / jdk1. 5 .0_02
            CLASSPATH
    = .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib
            PATH
    = $PATH:$JAVA_HOME / bin:$JAVA_HOME / jre / bin
            export JAVA_HOME CLASSPATH PATH

         保存退出

      3.要使JDK在所有的用戶中使用,可以這樣:vi /etc/profile.d/java.sh在新的java.sh中輸入以下內容:
            #set java environment
            JAVA_HOME=/usr/java/jdk1.5.0_02
            CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
            PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
            export JAVA_HOME CLASSPATH PATH
         保存退出,然后給java.sh分配權限:chmod 755 /etc/profile.d/java.sh

    二、安裝Apache(訪問代理主機)
      1.下載apache源代碼 http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz

     解壓縮 tar fvxz httpd-2.2.2.tar.gz

      2.進入解壓后的目錄。進行配置:

    . / configure  -- prefix =/ usr / apache  -- enable - module = most  -- enable - proxy  -- enable - proxy - ajp  -- enable - forward  -- enable - proxy - connect  -- enable - proxy - http  -- enable - so  -- enable - deflate  -- enable - headers  -- enable - include

    上面的配置,用到了其他一些模塊,說不定以后會用到,如支持ssi的include模塊。

      3.編譯(編譯如果不成功,確認一下你的linux是否安裝有編譯所需要的c環境和其他需要的類庫)
        make

      4.安裝 make install


      5.進入/usr/apache目錄,運行apache  ./apachectl -k start

          運行apache后,瀏覽一下是否運行正常。

        關閉apache ./apachectl -k stop


       6.把apache作為linux的啟動就運行服務程序
         執行如下操作:cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
         確認linux以前安裝的httpd(apache)不需要了,你可覆蓋掉以前apache的httpd文件。
         chkconfig --add httpd
         運行linux的setup,把httpd服務默認設定為自動運行。
         到現在,你就可用另一種方式來啟動、關閉apache了。如service httpd start


    三、安裝tomcat(Web服務器)
        1.下載jakarta-tomcat-5.5.20.tar.gz
          tar zxf jakarta-tomcat-5.5.20.tar.gz 解壓文件 (如解壓到/usr/local/)
        2.設置環境變量 #vi /etc/profile  添加
      CATALINA_HOME=/usr/local/jakarta-tomcat-5.5.30
      export CATALINA_HOME
          保存退出

        3.修改JVM內存:/bin/catalina.sh 文件
            在下# ----- Execute The Requested Command -----------------
                # Bugzilla 37848: only output this if we have a TTY
                  if [ $have_tty -eq 1 ]; then
                     echo "Using CATALINA_BASE:   $CATALINA_BASE"
                     echo "Using CATALINA_HOME:   $CATALINA_HOME"
                     echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
                    if [ "$1" = "debug" -o "$1" = "javac" ] ; then
                        echo "Using JAVA_HOME:       $JAVA_HOME"
                    else
                       echo "Using JRE_HOME:       $JRE_HOME"
                    fi
                   fi
                添加以下內容:

                    CATALINA_OPTS = " $CATALINA_OPTS -Xms256m -Xmx512m -XX:PermSize=32m  -XX:MaxPermSize=128m $JPDA_OPTS "

                    JAVA_OPTS
    = " $JAVA_OPTS -Djava.awt.headless=true "

                    echo 
    " Using CATALINA_OPTS: $CATALINA_OPTS "

                    echo 
    " Using JAVA_OPTS: $JAVA_OPTS "


        4.運行/usr/local/jakarta-tomcat-5.5.30/bin/startup.sh 啟動tomcat服務器 測試是否正常
       
      

    四、配置apache代理(適用mod_proxy_ajp.so)
        編輯apache配置文件 #vi /usr/apache/conf/httpd.conf
        1.配置proxy_ajp
     #加載解析模塊(windows下,或linux采用動態加載模式下需配置。前面我們的linux編譯時把下面的模塊嵌入到了apache中 

           ,所以不用再加載)
     LoadModule proxy_module modules/mod_proxy.so
     LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
        2.配置文件添加

     ProxyPass  /  balancer: // tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=on timeout=5  maxattempts = 3
     ProxyPassReverse 
    /  balancer: // tomcatcluster/

     
    < Proxy balancer: // tomcatcluster >
        BalancerMember ajp: // 192.168.40.15:8009 smax=2 loadfactor=1  route=tomca t1
        BalancerMember ajp: // 192.168.71.106:8009 smax=2 loadfactor=2  route=tomc at2
      </ Proxy >

     

            以上說明請參見mod_proxy中文手冊 http://www.6bee.com/tech/ApacheMenu/mod/mod_proxy.html
        3.其他說明

     1、apache對tomcat的支持歷史:apache第2.1版本后,內置了proxy_ajp,而jk2已經沒人開發了,jk則支持到apache的

    2.0.58版本。
    proxy_ajp配置較簡單,但可配置性還不如jk2,主要表現在proxy_ajp目前只支持配置到目錄,還不支持對文件名稱的pattern模式匹

    配(即還不能定義到只對jsp文件起作用)。

     2、因為proxy_ajp的配置,還不支持對文件名稱的pattern模式匹配,所以你要特別注意:
    ——盡量把jsp和靜態文件和圖片路徑分不同的目錄來管理;
    ——對于靜態文件和圖片路徑,如/images,你可用“ProxyPass /images !”來禁止ProxyPass,從而來讓apache來直接處理圖片的請

    求。
    ——關于apache的ssi(即shtml,include)與tomcat的集成時,shtml文件不能處于ProxyPass的控制下(即不能在ProxyPass目錄)

    ,而shtml調用的jsp須在ProxyPass有效控制下;


    五、配置Tomcat負載均衡、集群
        1.修改tomcat 的 conf/server.xml 的<Engine>     
        去掉注釋<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
            jvmRoute是tomcat路由標示,由此區分兩臺tomcat主機,那么第二臺就改為
                <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">
        加上注釋<Engine name="Catalina" defaultHost="localhost">
       
        2.修改tomcat 的 conf/server.xml 的<Connector> 
        去掉注釋<Connector port="8009"
                   enableLookups="false" redirectPort="8443" debug="0"
                   protocol="AJP/1.3" />
       

        3.修改tomcat 的 conf/server.xml 的<Cluster>   

        <!--  
            
    < Cluster className = " org.apache.catalina.cluster.tcp.SimpleTcpCluster "
                     managerClassName
    = " org.apache.catalina.cluster.session.DeltaManager "
                     expireSessionsOnShutdown
    = " false "
                     useDirtyFlag
    = " true "
                     notifyListenersOnReplication
    = " true " >

                
    < Membership 
                    className
    = " org.apache.catalina.cluster.mcast.McastService "
                    mcastAddr
    = " 228.0.0.4 "
                    mcastPort
    = " 45564 "
                    mcastFrequency
    = " 500 "
                    mcastDropTime
    = " 3000 " />

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

                
    < Sender
                    className
    = " org.apache.catalina.cluster.tcp.ReplicationTransmitter "
                    replicationMode
    = " pooled "
                    ackTimeout
    = " 5000 " />

                
    < Valve className = " org.apache.catalina.cluster.tcp.ReplicationValve "
                       filter
    = " .*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt; " />
                       
                
    < Deployer className = " org.apache.catalina.cluster.deploy.FarmWarDeployer "
                          tempDir
    = " /tmp/war-temp/ "
                          deployDir
    = " /tmp/war-deploy/ "
                          watchDir
    = " /tmp/war-listen/ "
                          watchEnabled
    = " false " />
                          
                
    < ClusterListener className = " org.apache.catalina.cluster.session.ClusterSessionListener " />
            
    </ Cluster >
            
    -->

    把上面的注釋拿掉 就ok 了!

    4.在每個webapps應用中,修改web.xml文件 添加元素<distributable/>

    最后完工,重啟tomcat,apahce測試平衡負載,新建jsp頁面
    <%
    Runtime lRuntime = Runtime.getRuntime();
    out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
    out.println("Free  Memory: "+lRuntime.freeMemory()/1024/1024+"M<br/>");
    out.println("Max   Memory: "+lRuntime.maxMemory()/1024/1024+"M<br/>");
    out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"M<br/>");
    out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
    out.println("*** END MEMORY STATISTICS ***");
    %>
    <br>
    <%= request.getSession().getId() %>
    放入到兩臺tomcat的ROOT目錄中測試

    再測試集群(session復制)

    posted on 2006-11-15 11:06 Derek.Guo 閱讀(4114) 評論(0)  編輯  收藏 所屬分類: Linux/Unix
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 国产一卡二卡3卡四卡免费| 国产三级在线免费| 成年丰满熟妇午夜免费视频 | 日本免费网站在线观看| 亚洲精品福利你懂| 免费无码又黄又爽又刺激| 亚洲日本乱码一区二区在线二产线| 一区二区三区福利视频免费观看| 亚洲av伊人久久综合密臀性色| 久久精品免费视频观看| 亚洲国产日韩一区高清在线 | 国产精品亚洲A∨天堂不卡| 国产一区二区三区免费观看在线| 久久99国产亚洲高清观看首页| 日韩视频在线观看免费| 亚洲日本乱码一区二区在线二产线 | 国产精品视频免费一区二区三区| 亚洲Av无码国产一区二区| 免费观看的a级毛片的网站| 丰满亚洲大尺度无码无码专线| 人人狠狠综合久久亚洲高清 | 无码精品人妻一区二区三区免费看| 亚洲男人天堂av| 无码少妇一区二区浪潮免费| 亚洲av色香蕉一区二区三区| 亚洲成a人片在线观看日本麻豆| 国产精品高清免费网站| 亚洲国产成人久久精品动漫| 国产成人免费在线| 亚洲av成人无码网站…| 亚洲一区二区三区香蕉| 亚洲视频免费播放| 亚洲av成人中文无码专区| 亚洲中文字幕无码久久精品1| 免费A级毛片无码视频| tom影院亚洲国产一区二区| 免费人成视网站在线观看不卡 | 成人免费AA片在线观看| 色www免费视频| 亚洲综合区图片小说区| 无码专区一va亚洲v专区在线|