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

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

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

    athrunwang

    紀元
    數據加載中……
    主題:Apache與Tomcat搭建集群
     早前就解了Apache和Tomcat可以搭建集群,可以負載均衡,升級就不需要停交易,真是強大。昨晚看了google reader的收藏又再次看到這篇文章,于是今天在星巴克研究了一把,發現真的很強大,負載均衡、session復制都可以做到,以后再也不用為升級系統而煩惱了。 
           下面就來講講是搭建集群的過程,首頁需要下載apahce和tomcat(當然需要安裝jdk,這就不多講了,大家應該懂得),本次實踐我是在windows系統的環境下進行的,apache是2.2.21版本,tomcat是7.0.16和7.0.23兩個版本。 
           首先講講tomcat需要配置的文件,假設Tomcat 7.0.16為服務器A,Tomcat 7.0.23為服務器B。注意如果你的Tomcat都是放在同一臺機子上,那你要修改端口,確保端口不要沖突。 
    服務器A的server.xml配置文件中的Engine節點中新增jvmRoute屬性,值可以自己定義,例如jvm1,同時新增Cluster節點的所有內容,如果tomcat是在同一臺機子的就需要注意Receiver節點的port屬性不能沖突,例如:4000 
    服務器A的server.xml配置文件 
    Xml代碼  收藏代碼
    1. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />  
    2.   
    3. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
    4.   
    5. <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">  
    6.   
    7. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" hannelSendOptions="8">  
    8.         <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" />  
    9.           
    10.         <Channel className="org.apache.catalina.tribes.group.GroupChannel">    
    11.              <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>    
    12.              <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto"    
    13.                        port="4000"  
    14.                        autoBind="100"  
    15.                        selectorTimeout="5000"  
    16.                        maxThreads="6" />  
    17.     
    18.              <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
    19.                <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
    20.              </Sender>  
    21.              <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
    22.              <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
    23.                
    24.              <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  
    25.                   filter=""/>  
    26.            <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  
    27.     
    28.            <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  
    29.                      tempDir="/tmp/war-temp/"  
    30.                      deployDir="/tmp/war-deploy/"  
    31.                      watchDir="/tmp/war-listen/"  
    32.                      watchEnabled="false"/>  
    33.     
    34.            <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  
    35.            <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
    36.            </Channel>  
    37.       </Cluster>  
    38. ......  
    39.   
    40. </Engine>  

    服務器B的server.xml配置文件,其中不同的是8180、8109和4001的幾個端口的修改和jvmRoute值的不同,其它都一樣 
    Xml代碼  收藏代碼
    1. <Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />  
    2.   
    3. <Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />  
    4.   
    5. <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">  
    6.   
    7. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" hannelSendOptions="8">  
    8.         <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" />  
    9.           
    10.         <Channel className="org.apache.catalina.tribes.group.GroupChannel">    
    11.              <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>    
    12.              <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto"    
    13.                        port="4001"  
    14.                        autoBind="100"  
    15.                        selectorTimeout="5000"  
    16.                        maxThreads="6" />  
    17.     
    18.              <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
    19.                <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
    20.              </Sender>  
    21.              <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
    22.              <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
    23.                
    24.              <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  
    25.                   filter=""/>  
    26.            <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  
    27.     
    28.            <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  
    29.                      tempDir="/tmp/war-temp/"  
    30.                      deployDir="/tmp/war-deploy/"  
    31.                      watchDir="/tmp/war-listen/"  
    32.                      watchEnabled="false"/>  
    33.     
    34.            <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  
    35.            <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
    36.            </Channel>  
    37.       </Cluster>  
    38. ......  
    39.   
    40. </Engine>  

    tomcat配置好了,為了session復制,我們還需要在應用的web.xml文件中添加<distributeable/>這個一個配置,那接下來我們就來講講apache的配置,需要修改apache的httpd.conf文件,將去掉一下這些的注釋,使其生效 
    Xml代碼  收藏代碼
    1. Include conf/extra/httpd-vhosts.conf  
    2.   
    3. LoadModule negotiation_module modules/mod_negotiation.so  
    4. LoadModule proxy_module modules/mod_proxy.so  
    5. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so  
    6. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
    7. LoadModule proxy_connect_module modules/mod_proxy_connect.so  
    8. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so  
    9. LoadModule proxy_http_module modules/mod_proxy_http.so  

    在http.conf的最后面新增以下配置,使apache可以反向代理和負載均衡,注意這里的端口是tomcat的端口,同時route是剛才配置的jvmRoute的值,不能配錯 
    Xml代碼  收藏代碼
    1. ProxyRequests Off  
    2. <proxy balancer://loadbalancer>   
    3. BalancerMember http://127.0.0.1:8080 loadfactor=1 route=jvm1  
    4. BalancerMember http://127.0.0.1:8180 loadfactor=1 route=jvm2  
    5. </proxy>  

    下面是httpd-vhosts.conf文件的配置,其它就不多講了,"ProxyPass /google !"是可以配置/google地址不反向代理,那么輸入地址/google就會在你apahce的根目錄里面找,"/baidu" 是配置了方向代理到百度,以上這兩個配置主要是看個人需求,主要是想說明怎么配置方向代理,而"ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On" 這兩句才是重點,主要是配置“/”都反向代理到tomcat,并且是負載均衡的模式 
    Xml代碼  收藏代碼
    1. <VirtualHost *:80>  
    2.     ServerAdmin webmaster@dummy-host.xiaoyang.com  
    3.     DocumentRoot "D:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.xiaoyang.com"  
    4.     ServerName dummy-host.xiaoyang.com  
    5.     ServerAlias www.dummy-host.xiaoyang.com  
    6.     ErrorLog "logs/dummy-host.xiaoyang.com-error.log"  
    7.     CustomLog "logs/dummy-host.xiaoyang.com-access.log" common  
    8.   
    9.         ProxyPass /google !  
    10.           
    11.         ProxyPass /baidu http://www.baidu.com  
    12.     ProxyPassReverse /baidu http://www.baidu.com  
    13.       
    14.     ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On  
    15.     ProxyPassReverse / balancer://loadbalancer/  
    16. </VirtualHost>  

    好了這就完成了,然后就可以打開你的apache的地址了,你不停的刷新頁面,會被負載分配到兩個tomcat服務其上面其,同時會話是相同的。 

    posted on 2011-12-26 22:07 AthrunWang 閱讀(318) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产美女无遮挡免费视频网站| 最近中文字幕无免费| 美美女高清毛片视频黄的一免费 | 一级毛片成人免费看免费不卡| 久久久久久久免费视频| 免费夜色污私人影院在线观看| 亚洲国产精品久久久久网站 | 亚洲AV无码专区国产乱码4SE| 亚洲欧洲无码AV不卡在线| 可以免费观看的毛片| 免费在线观看日韩| 四虎一区二区成人免费影院网址 | 亚洲а∨天堂久久精品| 4444亚洲国产成人精品| 女人裸身j部免费视频无遮挡| 美女视频黄a视频全免费| 亚洲人成网站18禁止久久影院| 日本视频免费观看| 久久精品国产精品亚洲艾草网美妙| 亚洲一级特黄特黄的大片| 男的把j放进女人下面视频免费| 国产公开免费人成视频| 亚洲天堂一区二区三区四区| 十八禁视频在线观看免费无码无遮挡骂过 | 国产亚洲综合网曝门系列| 日本系列1页亚洲系列| 午夜宅男在线永久免费观看网| 亚洲乱码中文字幕综合| 日韩在线视精品在亚洲| 爱情岛论坛网亚洲品质自拍| 免费看一级一级人妻片| 亚洲精品国产美女久久久| 亚洲美女免费视频| 亚洲自偷自拍另类12p| 国产精品免费高清在线观看| 国产精品久久亚洲不卡动漫| 亚洲国产成人精品久久久国产成人一区二区三区综| 国产va免费精品| 国产亚洲精品激情都市| 免费A级毛片无码A∨免费| 日韩成人精品日本亚洲|