具有主动/被动设置的Apache HTTPD mod_proxy_balancer

时间:2011-06-17 05:34:52

标签: apache2 load-balancing mod-proxy

我最近决定使用Apache HTTPD(在CentOS上 - RPM版本httpd-2.2.3-45.el5.centos)和mod_proxy以及mod_proxy_balancer来创​​建一个支持我的JBoss应用服务器的软件负载均衡器。当前的设置(见下面的配置)似乎工作正常,两个服务器都在积极处理入站请求。

但是,我想设置一个主动 - 被动群集,其中一个服务器主动处理请求,一旦失败,它将故障转移到被动节点,使其处于活动状态。是否可以使用mod_proxy_balancer?

我当前与此相关的httpd.conf段如下。

<Proxy balancer://mycluster>
       Order deny,allow
       Allow from all

       BalancerMember http://192.168.2.1:8080 route=node1
       BalancerMember http://192.168.2.2:8080 route=node2
</Proxy>


ProxyPass / balancer://mycluster/ lbmethod=byrequests stickysession=JSESSIONID|jsessionid

ProxyPreserveHost On
ProxyPassReverse /  http://192.168.2.1:8080/
ProxyPassReverse /  http://192.168.2.2:8080/

提前致谢。

2 个答案:

答案 0 :(得分:4)

使用BalancerMember之一作为Hot Standby

<Proxy balancer://mycluster>
    BalancerMember http://192.168.2.1:8080 retry=30 
    # the hot standby
    BalancerMember http://192.168.2.2:8080 status=+H retry=0
</Proxy>

现在node1服务于所有请求,node2等待,直到node1失败并接管。一旦node1启动,所有请求将再次由node1提供。如果node1启动或仍然关闭并且切换回node1,则Apache每30秒检查一次(重试= 30)。

答案 1 :(得分:1)

我设置了具有相同配置的被动节点,可能在启动或glusterfs等时与rsync同步...

使用两个相同的平衡器,两个都是活动的,我设置一个共享IP,一个主节点上的别名。 因此,如果主节点发生故障,则辅助节点会立即激活共享IP。

执行ip故障转移的有用项目是linux-ha,pacemaker