mod_proxy не использует порт, определенный в моих балансировщиках - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь настроить свой балансировщик нагрузки 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>

В балансировщике нагрузки один из виртуальных хостов должен общаться с обоими, поэтому в определении виртуального хоста у меня есть:

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.

Кто-нибудь знает, что происходит?похоже, это может быть случай чрезмерного совместного использования работником, но разве не следует указывать разные порты, чтобы это предотвратить?

Есть ли что-то еще, что я должен сделать?

Забыл упомянуть: этоиспользование apache 2.2.4-1 на коробке Centos.

Заранее спасибо!Тим

1 Ответ

0 голосов
/ 11 декабря 2011

ОК, так что я до сих пор не знаю, что случилось. Сделал 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>

И вуаля! Настройка теперь работает для меня:)

...