<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ù)載均衡,升級就不需要停交易,真是強(qiáng)大。昨晚看了google reader的收藏又再次看到這篇文章,于是今天在星巴克研究了一把,發(fā)現(xiàn)真的很強(qiáng)大,負(fù)載均衡、session復(fù)制都可以做到,以后再也不用為升級系統(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都是放在同一臺機(jī)子上,那你要修改端口,確保端口不要沖突。 
    服務(wù)器A的server.xml配置文件中的Engine節(jié)點(diǎn)中新增jvmRoute屬性,值可以自己定義,例如jvm1,同時(shí)新增Cluster節(jié)點(diǎn)的所有內(nèi)容,如果tomcat是在同一臺機(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 閱讀(316) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 精品熟女少妇aⅴ免费久久 | 99在线精品视频观看免费| 亚洲AV噜噜一区二区三区 | 最近免费中文字幕大全免费版视频| 另类专区另类专区亚洲| 亚洲av永久综合在线观看尤物| 亚洲精品无码不卡在线播放HE| 日本免费无遮挡吸乳视频电影| 成人免费的性色视频| 国产高清不卡免费视频| 久久免费国产精品| 特黄特色大片免费| 亚洲AV无码AV男人的天堂不卡 | 成人免费AA片在线观看| 久久午夜伦鲁片免费无码| 大妹子影视剧在线观看全集免费 | 日韩人妻无码免费视频一区二区三区| 麻花传媒剧在线mv免费观看| 久久精品国产免费一区| 四虎影视无码永久免费| 一个人看的www在线免费视频| 国产午夜亚洲精品不卡 | 四虎影视精品永久免费| 午夜一级毛片免费视频| 最新猫咪www免费人成| 精品福利一区二区三区免费视频| 暖暖免费日本在线中文| 国产成人一区二区三区视频免费| 两个人看的www免费| 无码精品人妻一区二区三区免费看 | 久久久久久一品道精品免费看| a级毛片免费在线观看| 久久最新免费视频| 三级黄色在线免费观看| 成人免费区一区二区三区| 在线观看免费黄网站| 免费观看在线禁片| 91香蕉在线观看免费高清| 67pao强力打造高清免费| 久久WWW免费人成一看片| 成人免费午夜无码视频|