1、Apache配置
1.1、httpd.conf配置
使用ajp方式与tomcat连接,类似的在最下面加入
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1
BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2
</proxy>
上面的两个BalancerMember成员是我们配置的tomcat集群。
1.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)最下面加入
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
其中的域名和路径根据你自己情况设置
2 配置 tomcat
2.1. 配置 server 的关闭
我们需要在一台机器上跑 2个不同的 tomcat ,需要修改不同的 tomcat 的关闭口,避免出现端口被占用的情况。修改\conf\server.xml 中找到 server, 修改为
<Server port="XXXX" shutdown="SHUTDOWN">
XXXX 在这里表示不同的端口:我分别使用8006、9006
2.2. 配置 Engine
修改原来的配置为:
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">
2.3. 配置 Connector
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。使tomcat中的端口与apache中httpd.conf内的端口对应即可。即一个8009,一个9009。
2.4. 设置tomcat的集群。
修改添加为以下的代码:并且<Receiver port=”XXXX”/>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="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>