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

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

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

    posts - 59, comments - 244, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    apache與tomcat負(fù)載集群的3種方法

    Posted on 2011-04-15 00:51 penngo 閱讀(25573) 評論(9)  編輯  收藏 所屬分類: Java
    花了兩天時間學(xué)習(xí)apache與tomcat的集成方法,現(xiàn)在把學(xué)習(xí)成果記錄下來。
    apache與tomcat負(fù)載集群集成方法有3種jk、jk_proxy、http_proxy
    本次集成使用的軟件版本:
    apache:httpd-2.2.17-win32-x86-no_ssl.msi
    tomcat:apache
    -tomcat-6.0.20.zip
    jdk:jdk
    -6u14-windows-i586.exe

    本次測試是1個apache集成兩個tomcat。
    安裝apache http server省略,訪問地址為http://127.0.0.1:8081
    安裝tomcat,解壓apache-tomcat-6.0.20.zip,測試時我是把兩個tomcat分開放在不同的虛擬機(jī),其中一個是和apache同一臺虛擬機(jī)。
    兩個tomcat分別命名為worker2和worker3
    先說tomcat.worker2的配置:
    server.xml
    (1)配置http監(jiān)聽端口,這里端口設(shè)為8079,該步驟非必要,只要不沖突就行了。
    <Connector port="8079" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    (2)配置AJP監(jiān)聽端口,這里端口設(shè)為8077,該步驟非必要,只要不沖突就行了。
    <Connector port="8077" protocol="AJP/1.3" redirectPort="8443" />

    (3)配置服務(wù)器標(biāo)識,這里標(biāo)識名配置為:worker2,添加jvmRoute="worker2",該步驟必須。
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
    在Engine節(jié)點(diǎn)啟用集群配置,只需去掉Cluster節(jié)點(diǎn)前的注釋就行了,該步驟必須,配置了集群才能實現(xiàn)Session復(fù)制,如果只有一個集群,只按我下邊的配置就行了,如果多個集群,則不能按此配置,tomcat服務(wù)器內(nèi)的幫助文檔/docs/cluster-howto.html,/docs/config/cluster.html有介紹,需要的可以參考下。
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">
       
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 

    要實現(xiàn)session復(fù)制,還需要在context.xml添加屬性distributable="true",如下:
    <Context distributable="true">
    如果不想在context.xml中添加distributable="true",還有另一方法是在應(yīng)用程序的web.xml中添加<distributeable/>,不過這方法我沒有測試。
    配置完成,訪問地址為:http://127.0.0.1:8079

    另一個tomcat.worker3的配置
    server.xml
    <Connector port="8078" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker3">
       
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    context.xml配置tomcat.worker2一樣。
    配置完成,訪問地址為:http://127.0.0.1:8078
    注意:如果兩個tomcat是放在同一臺機(jī)內(nèi),server.xml可能還需要修改其它端口,請確認(rèn)兩個tomcat能正常啟動。

    在tomcat.worker2和tomcat.worker3的webapps文件夾添加同樣的測試文件test"test.jsp
    <html>
    <head>
      
    <title>helloapp</title>
    </head>
    <body>
    <%
    System.out.println(
    "call test.jsp");

    %>   
    SessionID: 
    <%=session.getId() %>  
    </body>
    </html>
    訪問http://127.0.0.1:8078/test/test.jsp和http://127.0.0.1:8079/test/test.jsp,確保能成功訪問。

    現(xiàn)在開始apache和tomcat的不同方式集成
    1、jk方式集成
    下載mod_jk-1.2.31-httpd-2.2.3.so,請下載合適的mod_jk版本,改名為mod_jk.so放進(jìn)modules文件夾內(nèi)
    修改conf/httpd.conf配置
    LoadModule jk_module modules/mod_jk.so
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel debug
    JkMount  /*.do loadbalancer
    JkMount  /*.jsp loadbalancer
    增加conf/workers.properties文件,添加內(nèi)容
    worker.list=loadbalancer
    worker.worker2.port=8077   #ajp的監(jiān)聽端口
    worker.worker2.host=108.88.3.105
    worker.worker2.type=ajp13
    worker.worker2.lbfactor=1
    worker.worker3.port=9009
    worker.worker3.host=127.0.0.1
    worker.worker3.type=ajp13
    worker.worker3.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=worker2,worker3 #這里在的worker2、worker3為需要與上邊tomcat設(shè)置的別名一致
    worker.loadbalancer.sticky_session=1
    配置完成任務(wù),訪問http://127.0.0.1:8081/test/test.jsp,檢查是否能正常訪問。

    2、ajp_proxy
    去掉httpd.conf文件中下面內(nèi)容的注釋(刪掉#號),開啟下邊的配置
    Include conf/extra/httpd-vhosts.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_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    注意:
    除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
    如果是采用ajp_proxy,需要加載mod_proxy_ajp.so這個模塊;
    如果是采用http_proxy,需要加載mod_proxy_http.so這個模塊;

    httpd.conf,刪除剛才jk方式的配置內(nèi)容,增加下邊的配置
    ProxyRequests Off
    <proxy balancer://loadbalancer> 
    BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=worker3
    BalancerMember ajp://108.88.3.105:8077 loadfactor=1 route=worker2
    </proxy>
    conf/extra/httpd-vhosts.conf增加配置
    <VirtualHost *:8081>
             ServerAdmin xxxx@xxx.com
             ServerName localhost
             ServerAlias localhost
             ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On
             ProxyPassReverse / balancer://loadbalancer/
             ErrorLog "logs/loadbalancer-error.log"
             CustomLog "logs/loadbalancer-access.log" common
    </VirtualHost>
    配置完成任務(wù),訪問http://127.0.0.1:8081/test/test.jsp,檢查是否能正常訪問。

    3、http_proxy
    http_proxy的配置與ajp_proxy類似,修改方法2的httpd.conf配置如下,其它不變
    ProxyRequests Off
    <proxy balancer://loadbalancer> 
    BalancerMember http://127.0.0.1:8078 loadfactor=1 route=worker3
    BalancerMember http://108.88.3.105:8079 loadfactor=1 route=worker2
    </proxy>
    配置完成任務(wù),訪問http://127.0.0.1:8081/test/test.jsp,檢查是否能正常訪問。

    apache_tomcat配置文件下載:apache_tomcat


    評論

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2011-04-15 15:37 by 寧波LED
    一個看不懂,無語了

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2011-07-29 17:56 by 白河
    請教一下啊。
    為啥按照你的配置 在同一臺機(jī)器上 都是只能請求一個tomcat?

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2011-07-29 23:24 by penngo
    @白河
    沒遇上這情況.

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2013-01-04 18:45 by bohaiwaiwai
    如果有httpd-vhost.conf中有
    RewriteCond %{HTTP_HOST} www.jkl.cn$ [NC]
    RewriteRule ^/(.*)$ http://192.168.0.168:8080/jkl_web/$1 [P,L]
    這樣的配置怎么辦啊。。

    # re: apache與tomcat負(fù)載集群的3種方法[未登錄]  回復(fù)  更多評論   

    2013-12-27 14:38 by 222
    這種方式采用了session粘滯的方式實現(xiàn)的

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2015-04-09 13:25 by 定格
    LZ學(xué)習(xí)是通過視頻還是書籍,求資料

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2015-07-30 14:37 by 放放風(fēng)
    多認(rèn)證負(fù)載均衡跳轉(zhuǎn),3種方法都試過了,跳轉(zhuǎn)慢,10-15秒才反應(yīng)過來,直連apache+tomcat到是很快,郁悶啊

    # re: apache與tomcat負(fù)載集群的3種方法  回復(fù)  更多評論   

    2015-09-09 11:32 by Aceslup
    <Context distributable="true"> 這個沒有測試成功

    # re: apache與tomcat負(fù)載集群的3種方法[未登錄]  回復(fù)  更多評論   

    2016-04-29 16:58 by Leon
    能發(fā)表不是JK 方式的另外兩種配置嗎/
    主站蜘蛛池模板: 亚洲另类古典武侠| 亚洲www在线观看| 无码人妻久久一区二区三区免费丨 | 亚洲国产精品ⅴa在线观看| 免费人成视频x8x8入口| 一区二区在线免费观看| 国产精品亚洲а∨天堂2021 | 久久噜噜噜久久亚洲va久| 99久久人妻精品免费二区| 风间由美在线亚洲一区| 久久久亚洲欧洲日产国码是AV| 免费观看四虎精品国产永久| 日韩插啊免费视频在线观看| 青草青草视频2免费观看| 亚洲二区在线视频| 亚洲啪啪综合AV一区| 在线观看人成视频免费| 久久免费视频99| 男人j进女人p免费视频| 亚洲AV无码一区二区三区在线| 伊人久久综在合线亚洲91| 麻豆国产入口在线观看免费| 日韩精品无码免费一区二区三区 | 99亚偷拍自图区亚洲| 亚洲产国偷V产偷V自拍色戒| 日本一道综合久久aⅴ免费| 久久国产免费观看精品3| 亚洲免费无码在线| 亚洲精品无码永久在线观看男男| 日韩精品亚洲人成在线观看| 亚洲中文无韩国r级电影| 国产精品自在自线免费观看 | 亚洲午夜精品久久久久久人妖| 亚洲免费日韩无码系列| 免费无码黄动漫在线观看| 黄页网站在线观看免费高清| 久草视频在线免费看| 中文字幕版免费电影网站| 日日摸夜夜添夜夜免费视频| 亚洲第一街区偷拍街拍| 亚洲乱码在线观看|