mod_proxy没有使用我的balancermembers中定义的端口

时间:2011-12-08 08:58:11

标签: apache load-balancing mod-proxy

我正在尝试设置我的apache负载均衡器来代理相同的后端群集到运行在不同端口上的应用程序。群集定义如下:

<Proxy balancer://wordpress-cluster>
    BalancerMember http://192.168.2.10:80
    BalancerMember http://192.168.2.11:80
</Proxy>
<Proxy balancer://corporate-cluster>
    BalancerMember http://192.168.2.10:81
    BalancerMember http://192.168.2.11:81
</Proxy>

在负载均衡器中,其中一个vhost需要与两者进行通信,所以在vhost定义中我有:

ProxyRequests Off
ProxyPreserveHost Off
SSLProxyEngine On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /feed balancer://wordpress-cluster/feed lbmethod=byrequests
ProxyPassReverse /feed balancer://wordpress-cluster/feed

ProxyPass / balancer://corporate-cluster/ lbmethod=byrequests
ProxyPassReverse / balancer://corporate-cluster/

在请求'/'时,我从端口80应用程序获取内容,端口81应用程序。

有人知道发生了什么事吗?看起来这可能是一个过分热心的工作者共享的情况,但不应该指定不同的端口阻止它?

我还有别的事吗?

忘记提及:这是在一个centos盒子上使用apache 2.2.4-1。

提前致谢! 添

1 个答案:

答案 0 :(得分:0)

好的,所以我还是不知道发生了什么。有2个步骤来解决我的问题: 1)将集群拆分为2个1机器集群,事情有效:

<Proxy balancer://wordpress-cluster>
    BalancerMember http://192.168.2.10:80
</Proxy>
<Proxy balancer://corporate-cluster>
    BalancerMember http://192.168.2.11:81
</Proxy>

但当然会破坏平衡和故障转移支持...... 不好

第二个选项,创建dns别名以确保平衡器看起来不同(即使它们指向相同的框:

<Proxy balancer://wordpress-cluster>
    BalancerMember http://192.168.2.10:80
    BalancerMember http://192.168.2.11:80
</Proxy>
<Proxy balancer://corporate-cluster>
    BalancerMember http://corp01:81
    BalancerMember http://corp02:81
</Proxy>

瞧!设置现在正在为我工​​作:)