<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)  編輯  收藏


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 四虎精品视频在线永久免费观看| 久久亚洲av无码精品浪潮| 久久精品国产亚洲av四虎| 九九免费观看全部免费视频| 日韩a级毛片免费观看| 亚洲成av人无码亚洲成av人| 国产精品免费视频播放器| 亚洲精品成a人在线观看☆| 日韩免费观看视频| 国产亚洲福利精品一区二区| 亚洲黄色在线观看| 在线观看免费视频资源| 亚洲中文字幕无码一去台湾| 成人性生交大片免费看午夜a| 亚洲日本VA中文字幕久久道具| 日韩a级毛片免费视频| 精品一区二区三区高清免费观看| 亚洲无人区一区二区三区| 中文字幕亚洲男人的天堂网络| 天天操夜夜操免费视频| 香蕉视频在线观看免费| 亚洲午夜久久久久久久久电影网 | 中文字幕亚洲天堂| 在线观看免费黄色网址| 亚洲成人高清在线观看| 性做久久久久免费看| 一级特黄录像免费播放肥| 亚洲精品中文字幕麻豆| 免费无码黄网站在线观看| 4hu四虎免费影院www| 亚洲色欲www综合网| 国产免费人人看大香伊| 成人黄网站片免费视频| 亚洲一区二区三区在线| 亚洲午夜AV无码专区在线播放| 91香蕉在线观看免费高清| 亚洲午夜福利在线视频| 国产成人高清亚洲| 日韩亚洲国产高清免费视频| 一级特黄色毛片免费看| 亚洲婷婷天堂在线综合|