apache+tomcat负载均衡

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>

你可能感兴趣的:(java,apache,tomcat,xml,qq)