Tomcat群集

参照:  http://www.360doc.com/showWeb/0/0/207707.aspx

环境:
Tomcat 5.5.20
Apache 2.2.3


1.机器A 里有TomcatA\webapps\Test目录, 机器B里TomcatB\webapps\Test目录。其web.xml文件一样,两个都在</web-app>之前加上<distributable/>

2.两个Tomcat\conf\server.xml的如下内容去掉注释,没有就在</Host>之前加上去:


< Cluster  className ="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName
="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown
="false"
                 useDirtyFlag
="true"
                 notifyListenersOnReplication
="true" >

            
< Membership 
                
className ="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr
="228.0.0.4"
                mcastPort
="45564"
                mcastFrequency
="500"
                mcastDropTime
="3000" />

            
< Receiver 
                
className ="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress
="auto"
                tcpListenPort
="4001"
                tcpSelectorTimeout
="100"
                tcpThreadCount
="6" />

            
< Sender
                
className ="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode
="pooled"
                ackTimeout
="15000"
                waitForAck
="true" />

            
< Valve  className ="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter
=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" />
                   
            
< Deployer  className ="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir
="/tmp/war-temp/"
                      deployDir
="/tmp/war-deploy/"
                      watchDir
="/tmp/war-listen/"
                      watchEnabled
="false" />
                      
            
< ClusterListener  className ="org.apache.catalina.cluster.session.ClusterSessionListener" />
        
</ Cluster >


3.接下来配置Apache\conf\httpd.conf
其中这三个去掉注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so


末尾加上:
ProxyRequests Off

ProxyPass /helloworld balancer://mycluster stickysession
= jsessionid nofailover = On

<Proxy balancer://mycluster>
BalancerMember http://
192.168.0.100 : 8080
BalancerMember http://
192.168.0.101 : 8080
</Proxy>

<Location /balancer-manager>
SetHandler balancer-manager
Order Deny
, Allow
Deny from all
Allow from all
</Location>

<Location /server-status>
SetHandler server-status
Order Deny
, Allow
Deny from all
Allow from all
</Location>


说明:
ProxyPass /helloworld balancer://mycluster stickysession=jsessionid nofailover=On
<Proxy balancer://mycluster>
BalancerMember http://<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">192.168.0.100</st1:chsdate>:8080
BalancerMember http://<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">192.168.0.101</st1:chsdate>:8080
</Proxy>
ProxyPass为代理转发的Url,即将所有访问/helloworld的请求转发到群集balancer://mycluster
BalancerMember为群集的成员,即群集服务器AB,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember


4.测试页面,
TomcatA\webapps\Test\index.html内容如下:
< html >
< head >< title > Tomcat 5.5.20 群集1 </ title ></ head >

< body >
< center > Tomcat 1号机
</ center >
</ body >
</ html >


TomcatB\webapps\Test\index.html内容如下:
< html >
< head >< title > Tomcat 5.5.20 群集2 </ title ></ head >

< body >
< center > Tomcat 2号机在TomcatB机上
</ center >
</ body >
</ html >


启动TomcatA和TomcatB,再启动Apache
http://localhost/helloworld/Test/index.html
后有出现上面两个页面的任一个说明配置成功。
不断刷新,这个页面不断交替。

:)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值