Apache2.2.x + Tomcat 6.0.18 集群配置详解

修改apachehttpd.conf

 

1. 添加模块

 

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. 配置Virtual hosts

打开Virtual hosts 即去掉Include conf/extra/httpd-vhosts.conf一行的注释,

  同时修改文件httpd-vhosts.conf,添加如下虚拟机信息

<VirtualHost *:80>

ServerAdmin [email protected] 

ServerName localhost 

ServerAlias localhost 

ProxyPass / balancer://tomcatcluster/ stickysession=jsessionid nofailover=On 

ProxyPassReverse / balancer://tomcatcluster/ 

ErrorLog "logs/dummy-host.zypwt.com-error.log"

CustomLog  "logs/dummy-host.zypwt.com-access.log"

</VirtualHost>

 

说明:ProxyPass为代理转发Url,即将所有访问/的请求转发到群集balancer://tomcatcluster 

      这里balancer://是告诉Apache需要进行负载均衡的代理,后面的tomcatcluster是集群名(可以随意取)

      两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取。

 httpd-vhosts.conf配置完毕,回到httpd.conf

 

 

3. 添加群集配置

httpd.conf文档最下面加上

ProxyRequests Off 

<Proxy balancer://tomcatcluster> 

BalancerMember ajp://www.zypwt.com:8009 loadfactor=1  route=tomcat1

BalancerMember ajp://www.zypwt.com:9009 loadfactor=1  route=tomcat2

</Proxy> 

 

ProxyRequests Off 是告诉Apache需要使用反向代理(利用Apache进行负载均衡必须使用反向代理)

BalancerMember为群集balancer://tomcatcluster的成员,即群集服务器AB,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。 

<proxy balancer://tomcatcluster> 用于配置工作在tomcat集群中的所有节点,这里的"tomcatcluster"必须与上面的集群名保持一致。

Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。

loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1Apache就按11的比例转发,如果是21就按21的比例转发。

route参数对应后续tomcat配置中的引擎路径(jvmRoute)。

 

 

 

二、修改群集成员tomcat配置文件server.xml 

 

 

1. 端口

 

    首先是配置关闭端口

     找到<Server port="8005" shutdown="SHUTDOWN">,修改port值,避免冲突,如新添加的tomcat中可设为:

    <Server port="9005" shutdown="SHUTDOWN">

    

    其次http 连接器端口

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

    可设为

    <Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

     

    最后修改AJP连接器端口:

       <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    可根据需要修改port值,需要与BalancerMember中的端口保持一致

    

2. jvmRoute

    <!-- You should set jvmRoute to support load-balancing via AJP ie :

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">  

     可根据需要修改jvmRoute值,需要与BalancerMember中的route保持一致

     

     

通过以上步骤即可完成apachetomcat的负载均衡配置, 如果需要向集群中增加节点,首先需要对tomcat作类似配置,然后修改Apache httpd.conf,增加BalancerMember,指向新增的tomcat即可。

 


<VirtualHost *:80>
  ServerName play.cn
  ServerAlias localhost
  DocumentRoot "E:/php/www"
</VirtualHost>


<VirtualHost www.play.cn:80>
ServerName www.play.cn
ProxyPass / http://127.0.0.1:88/
ProxyPassReverse / http://127.0.0.1:88/
<proxy http://127.0.0.1:88/>
    AllowOverride None
    Order Deny,Allow
    Allow from all
</proxy>
</VirtualHost>

 

猜你喜欢

转载自zac110.iteye.com/blog/1457709