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

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

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

    隨筆-61  評論-13  文章-19  trackbacks-0
    實踐中整理出tomcat集群和負載均衡
    (一)環(huán)境說明
    (1)服務器有4臺,一臺安裝apache,三臺安裝tomcat
    (2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2
    (3)ip配置,一臺安裝apache的ip為192.168.0.88,三臺安裝tomcat的服務器ip分別為192.168.0.1/2/4
    (二)安裝過程
    (1)在三臺要安裝tomcat的服務器上先安裝jdk
    (2)配置jdk的安裝路徑,在環(huán)境變量path中加入jdk的bin路徑,新建環(huán)境變量JAVA_HOME指向jdk的安裝路徑
    (3)在三臺要安裝tomcat的服務器上分別安裝tomcat,調(diào)試三個tomcat到能夠正常啟動
    (4)tomcat的默認WEB服務端口是8080,默認的模式是單獨服務,我的三個tomcat的WEB服務端口修改為7080/8888/9999
    修改位置為tomcat的安裝目錄下的conf/server.xml
    修改前的配置為
        <Connector port="8080" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
    修改后的配置為
        <Connector port="7080" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
    依次修改每個tomcat的監(jiān)聽端口(7080/8888/9999)

    (5)分別測試每個tomcat的啟動是否正常
    http://192.168.0.1:7080
    http://192.168.0.2:8888
    http://192.168.0.4:9999
    (三)負載均衡配置過程
    (1)在那臺要安裝apache的服務器上安裝apache2.0.55,我的安裝路徑為默認C:\Program Files\Apache Group\Apache2
    (2)安裝后測試apache能否正常啟動,調(diào)試到能夠正常啟動http://192.168.0.88
    (3)下載jk2.0.4后解壓縮文件
    (4)將解壓縮后的目錄中的modules目錄中的mod_jk2.so文件復制到apache的安裝目錄下的modules目錄中,我的為C:\Program Files\Apache Group\Apache2\modules
    (5)修改apache的安裝目錄中的conf目錄的配置文件httpd.conf,在文件中加LoadModule模塊配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so
    (6)分別修改三個tomcat的配置文件conf/server.xml,修改內(nèi)容如下
    修改前
        <!-- An Engine represents the entry point (within Catalina) that processes
             every request.  The Engine implementation for Tomcat stand alone
             analyzes the HTTP headers included with the request, and passes them
             on to the appropriate Host (virtual host). -->

        <!-- You should set jvmRoute to support load-balancing via AJP ie :
        <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">        
        -->
            
        <!-- Define the top level container in our container hierarchy -->
        <Engine name="Catalina" defaultHost="localhost">
    修改后
        <!-- An Engine represents the entry point (within Catalina) that processes
             every request.  The Engine implementation for Tomcat stand alone
             analyzes the HTTP headers included with the request, and passes them
             on to the appropriate Host (virtual host). -->

        <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
        <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">        
        
            
        <!-- Define the top level container in our container hierarchy
        <Engine name="Catalina" defaultHost="localhost">
        -->
    將其中的jvmRoute="jvm1"分別修改為jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"

    (7)然后重啟三個tomcat,調(diào)試能夠正常啟動。
    (8)在apache的安裝目錄中的conf目錄下創(chuàng)建文件workers2.propertie,寫入文件內(nèi)容如下

    # fine the communication channel
    [channel.socket:192.168.0.1:8009]
    info=Ajp13 forwarding over socket
    #配置第一個服務器
    tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名稱一致
    debug=0
    lb_factor=1 #負載平衡因子,數(shù)字越大請求被分配的幾率越高

    # Define the communication channel
    [channel.socket:192.168.0.2:8009]
    info=Ajp13 forwarding over socket
    tomcatId=tomcat2
    debug=0
    lb_factor=1

    # Define the communication channel
    [channel.socket:192.168.0.4:8009]
    info=Ajp13 forwarding over socket
    tomcatId=tomcat3
    debug=0
    lb_factor=1

    [status:]
    info=Status worker, displays runtime information.  

    [uri:/jkstatus.jsp]
    info=Display status information and checks the config file for changes.
    group=status:

    [uri:/*]
    info=Map the whole webapp
    debug=0
    (9)在三個tomcat的安裝目錄中的webapps建立相同的應用,我和應用目錄名為TomcatDemo,在三個應用目錄中建立相同 WEB-INF目錄和頁面index.jsp,index.jsp的頁面內(nèi)容如下
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.util.*" %>
    <html><head><title>Cluster App Test</title></head>
    <body>
    Server Info:
    <%
    out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
    <%
      out.println("<br> ID " + session.getId()+"<br>");

      // 如果有新的 Session 屬性設置
      String dataName = request.getParameter("dataName");
      if (dataName != null && dataName.length() > 0) {
         String dataValue = request.getParameter("dataValue");
         session.setAttribute(dataName, dataValue);
      }

      out.print("<b>Session 列表</b>");

      Enumeration e = session.getAttributeNames();
      while (e.hasMoreElements()) {
         String name = (String)e.nextElement();
         String value = session.getAttribute(name).toString();
         out.println( name + " = " + value+"<br>");
             System.out.println( name + " = " + value);
       }
    %>
      <form action="index.jsp" method="POST">
        名稱:<input type=text size=20 name="dataName">
         <br>
        值:<input type=text size=20 name="dataValue">
         <br>
        <input type=submit>
       </form>
    </body>
    </html>
    (10)重啟apache服務器和三個tomcat服務器,到此負載 均衡已配置完成。測試負載均衡先測試apache,訪問http://192.168.0.88/jkstatus.jsp
    能否正常訪問,并查詢其中的內(nèi)容,有三個tomcat的相關(guān)配置信息和負載說明,訪問http://192.168.0.88/TomcatDemo/index.jsp看能夠運行,
    能運行,則已建立負載均衡。
    (四)tomcat集群配置
    (1)負載均衡配置的條件下配置tomcat集群
    (2)分別修改三個tomcat的配置文件conf/server.xml,修改內(nèi)容如下
    修改前
            <!--
            <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>
            -->  
    修改后
            <!-- modify by whh -->
            <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>
           <!-- modify by whh -->      
    將集群配置選項的注釋放開即可,如上。
    (3)重啟三個tomcat。到此tomcat的集群已配置完成。
    (五)應用配置
    對于要進行負載和集群的的tomcat目錄下的webapps中的應用中的WEB-INF中的web.xml文件要添加如下一句配置
    <distributable/>
    配置前
    <?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>
    </web-app>
    配置后
    <?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>
    posted on 2008-06-06 08:50 xnabx 閱讀(107) 評論(0)  編輯  收藏

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 免费二级毛片免费完整视频| 免费福利视频导航| 国产伦一区二区三区免费| 国产亚洲精品bv在线观看| 久久久久久99av无码免费网站| 亚洲精品视频免费看| 59pao成国产成视频永久免费| 亚洲AV成人精品网站在线播放 | 亚洲AV无码成人精品区天堂| 久久99精品免费一区二区| 伊人久久大香线蕉亚洲五月天| 一级一级一级毛片免费毛片| 亚洲一区二区高清| 免费无码av片在线观看| 亚洲国产精品嫩草影院在线观看 | 一级毛片免费播放男男| 国产偷国产偷亚洲清高动态图| 最近2019中文免费字幕在线观看| 亚洲精品午夜国产VA久久成人| 久久青草免费91线频观看站街| 亚洲网站免费观看| 免费网站看v片在线香蕉| 一级毛片无遮挡免费全部| 亚洲国产成人私人影院| 免费观看AV片在线播放| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲人成人无码网www国产| 久久午夜免费鲁丝片| 亚洲欧美日本韩国| 久久久久亚洲?V成人无码| 亚州免费一级毛片| 美女视频黄a视频全免费网站一区| 亚洲日韩精品射精日| 午夜宅男在线永久免费观看网 | 国产精品成人啪精品视频免费| 久久久亚洲精品无码| 在线jlzzjlzz免费播放| 91福利免费网站在线观看| 精品日韩99亚洲的在线发布| 亚洲精品WWW久久久久久| 无码国产精品一区二区免费式影视|