参照:
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>之前加上去:
3.接下来配置Apache\conf\httpd.conf
其中这三个去掉注释:
末尾加上:
说明:
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为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。
4.测试页面,
TomcatA\webapps\Test\index.html内容如下:
TomcatB\webapps\Test\index.html内容如下:
启动TomcatA和TomcatB,再启动Apache
http://localhost/helloworld/Test/index.html
后有出现上面两个页面的任一个说明配置成功。
不断刷新,这个页面不断交替。
:)
环境:
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 >
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
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:// 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为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。
4.测试页面,
TomcatA\webapps\Test\index.html内容如下:
<
html
>
< head >< title > Tomcat 5.5.20 群集1 </ title ></ head >
< body >
< center > Tomcat 1号机
</ center >
</ body >
</ 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 >
< 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
后有出现上面两个页面的任一个说明配置成功。
不断刷新,这个页面不断交替。
:)