`
115893520
  • 浏览: 140417 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Apache 2.2.x+Tomcat6集群配置备忘

阅读更多

在我们部署Web应用时,不可避免大多都会涉及到集群问题,此文作为Apache 2.2.x+Tomcat6配置集群的备忘。

  1. 配置Tomcat6 的conf\server.xml文件,启用集群设置,如果在本地同时运行多个Tomcat进行测试的话,需要修改部分端口号,以避免冲突
    1. 打开AJP:<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
    2. 打开集群:
Xml代码 复制代码
  1.    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">    
  2.   
  3.      <!--For clustering, please take a look at documentation at:   
  4.          /docs/cluster-howto.html  (simple how to)   
  5.          /docs/config/cluster.html (reference documentation) -->  
  6.         
  7.        
  8. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  channelSendOptions="6">       
  9.     <Manager className="org.apache.catalina.ha.session.BackupManager"       
  10.     expireSessionsOnShutdown="false"       
  11.     notifyListenersOnReplication="true"       
  12.     mapSendOptions="6"/>       
  13.     <!--       
  14.     <Manager className="org.apache.catalina.ha.session.DeltaManager"       
  15.     expireSessionsOnShutdown="false"       
  16.     notifyListenersOnReplication="true"/>       
  17.     -->       
  18.     <Channel className="org.apache.catalina.tribes.group.GroupChannel">       
  19.     <Membership className="org.apache.catalina.tribes.membership.McastService"       
  20.     address="228.0.0.4"       
  21.     port="45564"       
  22.     frequency="500"       
  23.     dropTime="3000"/>       
  24.     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"       
  25.     address="auto"       
  26.     port="5001"       
  27.     selectorTimeout="100"       
  28.     maxThreads="6"/>       
  29.     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">       
  30.     <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>       
  31.     </Sender>       
  32.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>       
  33.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>       
  34.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>       
  35.     </Channel>       
  36.     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"       
  37.     filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>       
  38.     <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"       
  39.     tempDir="/tmp/war-temp/"       
  40.     deployDir="/tmp/war-deploy/"       
  41.     watchDir="/tmp/war-listen/"       
  42.     watchEnabled="false"/>       
  43.     <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>       
  44. </Cluster>  
  45.   
  46.   
  47.           
  48.   
  49.      <!-- The request dumper valve dumps useful debugging information about   
  50.           the request and response data received and sent by Tomcat.   
  51.           Documentation at: /docs/config/valve.html -->  
  52.      <!--  
  53.      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>  
  54.      -->  
  55.   
  56.      <!-- This Realm uses the UserDatabase configured in the global JNDI   
  57.           resources under the key "UserDatabase".  Any edits   
  58.           that are performed against this UserDatabase are immediately   
  59.           available for use by the Realm.  -->  
  60.      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
  61.             resourceName="UserDatabase"/>  
  62.   
  63.      <!-- Define the default virtual host   
  64.           Note: XML Schema validation will not work with Xerces 2.2.   
  65.       -->  
  66.      <Host name="localhost"  appBase="webapps"  
  67.            unpackWARs="true" autoDeploy="true"  
  68.            xmlValidation="false" xmlNamespaceAware="false">  
  69.   
  70.        <!-- SingleSignOn valve, share authentication between web applications   
  71.             Documentation at: /docs/config/valve.html -->  
  72.        <!--  
  73.        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />  
  74.        -->  
  75.   
  76.        <!-- Access log processes all example.   
  77.             Documentation at: /docs/config/valve.html -->  
  78.        <!--   
  79.        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"     
  80.               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>  
  81.        -->  
  82.   
  83.      </Host>  
  84.    </Engine>  
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2"> 

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      
     
	<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  channelSendOptions="6">    
		<Manager className="org.apache.catalina.ha.session.BackupManager"    
		expireSessionsOnShutdown="false"    
		notifyListenersOnReplication="true"    
		mapSendOptions="6"/>    
		<!--    
		<Manager className="org.apache.catalina.ha.session.DeltaManager"    
		expireSessionsOnShutdown="false"    
		notifyListenersOnReplication="true"/>    
		-->    
		<Channel className="org.apache.catalina.tribes.group.GroupChannel">    
		<Membership className="org.apache.catalina.tribes.membership.McastService"    
		address="228.0.0.4"    
		port="45564"    
		frequency="500"    
		dropTime="3000"/>    
		<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"    
		address="auto"    
		port="5001"    
		selectorTimeout="100"    
		maxThreads="6"/>    
		<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">    
		<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>    
		</Sender>    
		<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>    
		<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>    
		<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>    
		</Channel>    
		<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"    
		filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>    
		<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"    
		tempDir="/tmp/war-temp/"    
		deployDir="/tmp/war-deploy/"    
		watchDir="/tmp/war-listen/"    
		watchEnabled="false"/>    
		<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>    
	</Cluster>


        

      <!-- The request dumper valve dumps useful debugging information about
           the request and response data received and sent by Tomcat.
           Documentation at: /docs/config/valve.html -->
      <!--
      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
      -->

      <!-- This Realm uses the UserDatabase configured in the global JNDI
           resources under the key "UserDatabase".  Any edits
           that are performed against this UserDatabase are immediately
           available for use by the Realm.  -->
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      <!-- Define the default virtual host
           Note: XML Schema validation will not work with Xerces 2.2.
       -->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
        -->

      </Host>
    </Engine>

2.打开Apache下的conf\httpd.conf文件,打开注释:

Html代码 复制代码
  1. LoadModule proxy_module modules/mod_proxy.so   
  2. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so   
  3. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so   
  4. LoadModule proxy_connect_module modules/mod_proxy_connect.so   
  5. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so   
  6. LoadModule proxy_http_module modules/mod_proxy_http.so  
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

 

在文件末尾添加:

Html代码 复制代码
  1. ProxyRequests Off      
  2. <Proxy balancer://cluster>       
  3.     BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1  
  4.     BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2  
  5. </Proxy>   
ProxyRequests Off   
<Proxy balancer://cluster>    
	BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1
	BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2
</Proxy> 

配置VirtualHost:

Xml代码 复制代码
  1. <VirtualHost *:80>      
  2.          ServerAdmin test@126.com      
  3.          ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On      
  4.          ProxyPassReverse / balancer://cluster/    
  5.          ServerName www.mytest.com   
  6.          ServerAlias mytest.com     
  7. </VirtualHost>   
<VirtualHost *:80>   
         ServerAdmin test@126.com   
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On   
         ProxyPassReverse / balancer://cluster/ 
         ServerName www.mytest.com
         ServerAlias mytest.com  
</VirtualHost> 

 

在应用程序的web.xml结尾加入:

Html代码 复制代码
  1. <distributable/>  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics