`
kongshanxuelin
  • 浏览: 912160 次
  • 性别: 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. 打开集群:
    <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文件,打开注释:

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

 

在文件末尾添加:

ProxyRequests Off   
<Proxy balancer://cluster>    
	BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1
	BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2
</Proxy> 

配置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结尾加入:

<distributable/>

 

运行http://www.mytest.com,从tomcat日志可看出均衡和集群都起了作用,以上配置在WinXP +  Apache 2.2.8 + tomcat6上测试通过!

4
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics