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

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

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

    athrunwang

    紀(jì)元
    數(shù)據(jù)加載中……
    主題:Apache與Tomcat搭建集群
     早前就解了Apache和Tomcat可以搭建集群,可以負(fù)載均衡,升級(jí)就不需要停交易,真是強(qiáng)大。昨晚看了google reader的收藏又再次看到這篇文章,于是今天在星巴克研究了一把,發(fā)現(xiàn)真的很強(qiáng)大,負(fù)載均衡、session復(fù)制都可以做到,以后再也不用為升級(jí)系統(tǒng)而煩惱了。 
           下面就來講講是搭建集群的過程,首頁需要下載apahce和tomcat(當(dāng)然需要安裝jdk,這就不多講了,大家應(yīng)該懂得),本次實(shí)踐我是在windows系統(tǒng)的環(huán)境下進(jìn)行的,apache是2.2.21版本,tomcat是7.0.16和7.0.23兩個(gè)版本。 
           首先講講tomcat需要配置的文件,假設(shè)Tomcat 7.0.16為服務(wù)器A,Tomcat 7.0.23為服務(wù)器B。注意如果你的Tomcat都是放在同一臺(tái)機(jī)子上,那你要修改端口,確保端口不要沖突。 
    服務(wù)器A的server.xml配置文件中的Engine節(jié)點(diǎn)中新增jvmRoute屬性,值可以自己定義,例如jvm1,同時(shí)新增Cluster節(jié)點(diǎn)的所有內(nèi)容,如果tomcat是在同一臺(tái)機(jī)子的就需要注意Receiver節(jié)點(diǎn)的port屬性不能沖突,例如:4000 
    服務(wù)器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>  

    服務(wù)器B的server.xml配置文件,其中不同的是8180、8109和4001的幾個(gè)端口的修改和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復(fù)制,我們還需要在應(yīng)用的web.xml文件中添加<distributeable/>這個(gè)一個(gè)配置,那接下來我們就來講講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可以反向代理和負(fù)載均衡,注意這里的端口是tomcat的端口,同時(shí)route是剛才配置的jvmRoute的值,不能配錯(cuò) 
    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就會(huì)在你apahce的根目錄里面找,"/baidu" 是配置了方向代理到百度,以上這兩個(gè)配置主要是看個(gè)人需求,主要是想說明怎么配置方向代理,而"ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On" 這兩句才是重點(diǎn),主要是配置“/”都反向代理到tomcat,并且是負(fù)載均衡的模式 
    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的地址了,你不停的刷新頁面,會(huì)被負(fù)載分配到兩個(gè)tomcat服務(wù)其上面其,同時(shí)會(huì)話是相同的。 

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成年网在线观看免费观看网址 | 国产精品免费播放| 91亚洲精品自在在线观看| 久久九九AV免费精品| 国产成人精品日本亚洲网站 | 亚洲av永久无码嘿嘿嘿| 色老头永久免费网站| 亚洲成人免费在线观看| 午夜国产精品免费观看| 天天爽亚洲中文字幕| 免费无码又爽又高潮视频| 亚洲av无码专区在线观看下载| 日本一道在线日本一道高清不卡免费| 久久亚洲中文字幕无码| 亚洲国产婷婷综合在线精品| 国产在线精品观看免费观看| 国产亚洲无线码一区二区| 久9久9精品免费观看| 亚洲国产人成在线观看| 免费观看美女裸体网站| 免费看又黄又爽又猛的视频软件| 最新精品亚洲成a人在线观看| 久久国产乱子精品免费女| 亚洲精品美女久久久久9999| 最新中文字幕免费视频| 九九九精品视频免费| 亚洲视频手机在线| 青青青国产免费一夜七次郎| 一出一进一爽一粗一大视频免费的| 精品国产_亚洲人成在线高清 | 国产香蕉免费精品视频| 亚洲日本va一区二区三区| 亚洲日韩在线中文字幕第一页| 国产激情免费视频在线观看 | 成人a免费α片在线视频网站| 国产亚洲男人的天堂在线观看 | 国产亚洲成av片在线观看| 91精品免费国产高清在线| 理论秋霞在线看免费| 久久精品国产亚洲AV无码娇色| 成人性生交大片免费看午夜a |