日期:2014-05-16  浏览次数:20865 次

apache tomcat 集群配置
1.首先,在Apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。

     去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。

     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
     LoadModule proxy_connect_module modules/mod_proxy_connect.so
     LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
     LoadModule proxy_http_module modules/mod_proxy_http.so

     向下拉动文档找到<IfModule dir_module>节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。

     继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。

     用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

     <VirtualHost *:80>
         ServerAdmin 管理员邮箱
         ServerName 域名(没有可用IP地址代替)
         ServerAlias localhost
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://cluster/
         ErrorLog "logs/lbtest-error.log"
         CustomLog "logs/lbtest-access.log" common
     </VirtualHost>

     这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎ErrorLog负责记 录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtest。httpd-vhosts.conf配置 完毕,回到httpd.conf,在文档最下面加上

     ProxyRequests Off
     <proxy balancer://cluster>
          BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
          BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
     </proxy>

     ProxyRequests Off 是告诉Apache需要使用反向代理(利用Apache进行负载均衡必须使用反向代理,关于更多负载均衡和反向代理详情可以参阅笔者另一篇博客http://zyycaesar.javaeye.com/admin/blogs/293839),<proxy balancer://cluster>用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。 Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因 子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都 是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径 (jvmRoute)。

#虚拟机配置,负载均衡配置  
<VirtualHost *:8000>  
    ServerAdmin weigbo@163.com  
    ServerName localhost  
    ServerAlias localhost  
    #小心,有些地方要有空格,要不然会出错哈哈。  
    ProxyPass / balancer://cluster/ stickysession=JSESSIONID|jsessionid nofailover=On  
    ProxyPassReverse / balancer://cluster/  
    #ErrorLog "logs/error.log" 
    #CustomLog "logs/access.log" common  
</VirtualHost>   
 
#The ProxyRequests directive should usually be set off when using ProxyPass.  
ProxyRequests Off  
<proxy balancer://cluster>  
    BalancerMember ajp://localhost:8009 loadfactor=1 route=tomcat7_a  smax=5 max=20 ttl=120 retry=300 timeout=15  
    BalancerMember ajp://localhost:9009 loadfactor=1 route=tomcat7_b  smax=5 max=20 ttl=120