1 环境准备
(1)Apache
(2)四个Tomcat
2 Apathe配置
2.1 httpd.conf配置(*\Apache\conf\httpd.conf)
(1)将Module的注释去掉
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
(2) <IfModule dir_module></IfModule>处加上 index.jsp
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>
(3)在最下面加入四个 BalancerMember成员(配置的 tomcat集群)
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm2
BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm3
BalancerMember ajp://127.0.0.1:9005 loadfactor=1 route=jvm4
</proxy>
2.2 httpd-vhosts.conf设置
APACHE的虚拟主机设置如下:
首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf)把注释去掉。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
在文件(extra/httpd-vhosts.conf)最下面加入
<span style="font-size:12px;"><VirtualHost *:80>
ServerAdmin mdtu.com
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost></span><span style="font-size: 12pt;">
</span>
3 配置tomcat(conf/server.xml)
3.1 配置server的关闭
tomcat1、tomcat2、tomcat3、tomcat4端口分别使用8005,8006,8007,8008
<Server port="8005" shutdown="SHUTDOWN">
<Server port="8006" shutdown="SHUTDOWN">
<Server port="8007" shutdown="SHUTDOWN">
<Server port="8008" shutdown="SHUTDOWN">
3.2 配置Engine
把原来的配置注释掉,把原有的带jvmRoute="jvm1"的一行去掉注释
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
注:其它的tomcat2、tomcat3、tomcat4同样配置,只是将jvmRoute的值设置成jvm2、jvm3、jvm4
3.3 配置Connector
原来的配置
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
此处port端口要改为和httpd.conf文件中配置的<proxy balancer://cluster> 中的端口一致,同时把redirectPort中的值改成唯一的,确保四个tomcat的都不一样
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="9003" protocol="AJP/1.3" redirectPort="8444" />
<Connector port="9004" protocol="AJP/1.3" redirectPort="8445" />
<Connector port="9005" protocol="AJP/1.3" redirectPort="8446" />
3.4 配置Cluster
原来的配置
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
修改后的配置: 注:<Receiver port=""> 该port要唯一
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/>
<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="4000" 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>
3.5 附端口表