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

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

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

    隨筆-1  評論-68  文章-98  trackbacks-0
    作者:徐建祥(netpirate@gmail.com
    時間:2007-4-19
    網址:http://www.anymobile.org

    索引 

    0、工作原理
    1、軟件準備
           1.1 軟件條目
           1.2 安裝JDK
           1.3 安裝Tomcat
           1.4 安裝Apache
    2、配置Tomcat集群
           2.1 修改Tomcat默認應用
           2.2 添加ROOT應用
           2.3 修改server.xml
           2.4 修改web.xml
    3、配置Apache HTTP代理
    4、優化Tomcat配置
           4.1 屏蔽HTTP Connector
           4.2 配置虛擬主機
           4.3 配置GBK編碼
    5、測試程序 

    0、工作原理 

         Apache(HTTP Server)2.2新增了代理服務器(Proxying)功能:新的代理均衡模塊(mod_proxy_balancer)提供負載均衡服務;AJP 1.3(Apache JServ Protocol)替代jk/jk2等連接器與Tomcat通信。
        結合Tomcat的集群(Cluster)功能,服務器結構如下:

        Load Balancer(Apache 2.2 Proxy)
             /           \
          Cluster1      Cluster2
          /     \        /     \
     Tomcat1 Tomcat2 Tomcat3 Tomcat4

    注:綠色部分為本文采用的配置情況。

    1、 軟件準備

    1.1    軟件條目

    操作系統              WinXP/Win2003

    JDK_5.0               http://java.sun.com/javase/downloads/index_jdk5.jsp (MSI Installer)
    Apache_2.2.4        http://httpd.apache.org/download.cgi (MSI Installer)
    Tomcat_5.5.23      http://tomcat.apache.org/download-55.cgi (Core Zip)

     

    1.2    安裝JDK
    安裝至目錄 D:\Java\jdk1.5.0 下,設置JAVA_HOME/CLASSPATH/PATH,略。

    1.3    安裝Tomcat
    解壓縮Zip文件至目錄 D:\Apache\Tomcat 5.5.23_S1 下;待配好后,復制到D:\Apache\Tomcat 5.5.23_S2,修改相關的端口和路徑。

    1.4    安裝Apache
    安裝至目錄 D:\Apache\Apache2.2 下,可在Tomcat集群配置完成后再安裝。

    2、 配置Tomcat集群

    2.1 修改Tomcat默認應用

    刪除$CATALINA_HOME/webapps和$CATALINA_HOME/temp目錄;
    將文件夾$CATALINA_HOME/conf/Catalina改名為Standalone。

    2.2 添加ROOT應用

    $CATALINA_HOME/conf/Standalone/localhost/ROOT.xml

    <?xml version=”1.0” encoding=”utf-8”?>
    <Context path=”” docBase=”E:\Project\wwwroot”
             displayName=”Tomcat 1” debug=”0” privileged=”true” 
             antiResourceLocking=”false” antiJARLocking=”false”>

     <!—Default set of monitored resources -->

     <WatchedResource>WEB-INF/web.xml</WatchedResource>

    </Context>


    2.3 修改server.xml

    $CATALINA_HOME/conf/server.xml

    操作步驟

    默認

    Tomcat 1

    Tomcat 2

    2.3.1 修改Server端口

    8005

    10005

    20005

    2.3.2 修改AJP Connector端口

         Apache JServ Protocol 1.3

    8009

    10009

    20009

    2.3.3 修改HTTPConnector端口

    8080

    10001

    20001

    2.3.4 修改redirectPort端口

    8443

    10043

    20043

    2.3.5 屏蔽Catalina,打開Standalone,并修改jvmRoute的值為Tomcat1/Tomcat2

    2.3.6打開Cluster,修改tcpListenPort

    4001

    10011

    20011

    2.4 修改web.xml 

    $CATALINA_HOME/conf/web.xml

    (添加)<distributable/>

            或者

    $CATALINA_HOME/conf/Standalone/*/ROOT.xml

    (設置)<Context distributable="true" …/>

            設置集群,session共享。

    3、 配置Apache HTTP代理,實現負載均衡

    有三種方法實現Tomcat的負載均衡:

    a. 使用JK本地連接器(Tomcat-Apache通信插件,JServ->JK->JK2->AJServP);
    b. 使用2.x版本的Aache HTTP服務器的代理模塊;
    c. 使用Tomcat的blancer web應用。

    $APACHE_HOME/conf/httpd.conf

    # 添加下面這段代碼
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

    ProxyRequests Off

    ProxyPass / balancer://myCluster/
    <Proxy balancer://myCluster/>
           BalancerMember ajp://localhost:10009 route=Tomcat1
           BalancerMember ajp://localhost:20009 route=Tomcat2
    </Proxy>

     
           至此,Apache和Tomcat已經安裝、配置完畢,可以依次運行兩個Tomcat(/bin/startup.bat)和Apache程序(Apache Monitor)。

    注:
    (1) 若系統設置了系統變量CATALINA_HOME,需修改/bin/startup.bat,屏蔽下面的代碼:
    #if not "%CATALINA_HOME%" == "" goto gotHome
    (2) Apache只是一個代理服務器,所有的請求全部轉至Tomcat處理,故啟用ROOT應用。

    4、 優化Tomcat配置

    4.1 屏蔽HTTP Connector

     

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <!--
    <Connector port="8080" …/>
    -->

    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <!--
    <Connector port="8443" …/>
    -->


    4.2 配置虛擬主機

    4.2.1 編輯server.xml的Engine,添加Host信息

    $CATALINA_HOME/conf/server.xml

    <Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat1">

           <Host name="localhost" appBase="webapps" …>… …</Host>

           <Host name="www.site.com" appBase="webapps/www.site.com"/>

        <Host name="www.site.net" appBase="webapps/www.site.net"/>

    </Engine>

    4.2.2 創建虛擬主機對應的Webapp目錄

     

    $CATALINA_HOME/webapps/www.site.com

    $CATALINA_HOME/webapps/www.site.net

    均為空目錄

    4.2.3 創建虛擬主機   

    $CATALINA_HOME/conf/Standalone/www.site.com/ROOT.xml

    $CATALINA_HOME/conf/Standalone/www.site.net/ROOT.xml

    <?xml version="1.0" encoding="utf-8"?>

    <Context path="" docBase="E:\Project\{site name}" …>

     <WatchedResource>WEB-INF/web.xml</WatchedResource>

    </Context>

    另一個Tomcat Node也做類似的修改,并分別重啟兩個Tomcat。

    4.3 配置GBK編碼

     

    $CATALINA_HOME/conf/server.xml

        <!-- Define an AJP 1.3 Connector on port 10009 -->

        <Connector port="10009" URIEncoding="GBK"

                   enableLookups="false" redirectPort="10443" protocol="AJP/1.3" />


    5、測試程序 

    init.jsp

    <%

    session.setAttribute("name",request.getParameter("name"));

    out.println("success!" + session.getId());

    %>

    testRoute.jsp

    <%

    String test = session.getId() + " - " + session.getAttribute("name");

    System.out.println( new java.util.Date() + ":" + test);

    out.println( test );

    %>

    訪問 http://localhost/init.jsp?name=HAHA(只須執行一次)
    訪問 http://localhost/testRoute.jsp
    訪問多次就可以發現,兩個Tomat服務器是均衡的,且session共享。
     

    另外,還可以設置路由JSESSIONID

    $CATALINA_HOME/conf/server.xml

    <!-- sessionIdAttribute default attribute name is

     org.apache.catalina.cluster.session.JvmRouteOrignalSessionID.

     JSESSIONID.{orignal node id} à

    <Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve"

           enabled="true" sessionIdAttribute="takeoverSessionid"/>

    <ClusterListener className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" />

     

    參考資料
           Apache Proxy Module    http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
           Apache Balancer Module       http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
           Tomcat 5.5 Load Balancer     http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html
           Tomcat 5.5 Clustering/Session Replication   http://tomcat.apache.org/.../cluster-howto.html
           Apache Tomcat 5.5 Proxy     http://tomcat.apache.org/tomcat-5.5-doc/proxy-howto.html

    (全文完)
    [補][推薦]Apache HTTP Server 與 Tomcat 的三種連接方式介紹(劉 冬@IBM) http://www-128.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/index.html
    posted on 2007-04-23 16:56 Xu Jianxiang 閱讀(6252) 評論(6)  編輯  收藏 所屬分類: Open SourceServer Side

    評論:
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-05-26 17:25 | Rocan
    你好,非常感謝你提供的這種方法,我已經配置成功,但是你在文章中提到"Apache只是一個代理服務器,所有的請求全部轉至Tomcat處理"
    那么,我想再整合PHP是不是就不行了  回復  更多評論
      
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-06-02 16:07 | netpirate
    再架一套Apache+PHP,轉換相關請求到新的Apache。Try,:)  回復  更多評論
      
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-06-05 01:56 | Xu Jianxiang
    to Rocan:
    Windows 2003下配置Apache虛擬主機 http://m.tkk7.com/anymobile/articles/122026.html  回復  更多評論
      
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-07-06 11:39 | hills

      你好!

      我問一下,如果Tomcat1中保存了個session,如果Tomcat1崩潰了或被關閉停止了,那么這個session可以被復制到Tomcat2中嗎?可以繼續使用這個session嗎?

      謝謝!  回復  更多評論
      
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-07-18 09:27 | netpirate
    session是一樣的,:)  回復  更多評論
      
    # re: Windows 2003下配置Apache代理Tomcat集群 2007-11-06 16:46 | jdonee
    收藏了  回復  更多評論
      
    主站蜘蛛池模板: 毛片免费在线观看网站| 国产福利视精品永久免费| 日韩中文无码有码免费视频 | 国产亚洲?V无码?V男人的天堂| 老司机亚洲精品影院在线观看| 四虎成人免费网址在线| 亚洲AV无码一区二区大桥未久 | 100部毛片免费全部播放完整| 亚洲国产精品lv| 99热在线观看免费| 亚洲美女中文字幕| 黄页网站在线观看免费高清| 亚洲国产日韩在线| 免费看片A级毛片免费看| 爱爱帝国亚洲一区二区三区| 亚洲精品无码99在线观看| 成av免费大片黄在线观看| 久久亚洲精精品中文字幕| 四虎永久在线精品免费观看视频| 亚洲宅男精品一区在线观看| 免费无码又爽又高潮视频| 一级毛片免费在线观看网站| 亚洲AV日韩精品久久久久久久 | 波多野结衣久久高清免费 | 3d成人免费动漫在线观看| 亚洲精品伊人久久久久| 国产三级免费电影| 国产羞羞的视频在线观看免费| 亚洲国产电影在线观看| 在线观看免费精品国产| 91精品成人免费国产| 亚洲嫩草影院在线观看| 免费一区二区三区四区五区| 91成人免费福利网站在线| 一区二区亚洲精品精华液| 久久亚洲av无码精品浪潮| 免费精品国产自产拍在线观看图片 | 久久久无码精品亚洲日韩蜜桃| 99久久国产热无码精品免费| 激情吃奶吻胸免费视频xxxx| 色婷婷亚洲十月十月色天|