2009-05-14 3 views
4

, поэтому мы запускаем кластер из 2+ серверных серверов (которые, как полагают, являются серверами JBoss), которые балансируются по нагрузке с помощью Apache 2.2. Время от времени может случиться так, что серверы бэкэнда перестанут реагировать (это означает, что они будут ждать возраста, чтобы ответить на запрос, но не закрывают соединение немедленно). Это, естественно, закончится ошибкой 502 «Плохой шлюз». Мое понимание балансировки нагрузки, которое заключается в том, что он должен отказываться и перенаправлять запросы к остальным экземплярам.mod_proxy time-outs (502) и failovers

Я видел, что узел балансира может перейти в состояние ошибки, но никогда не смог полностью отправить его в это состояние (т. Е. Делать это после того, как первые 502 были обнаружены). Я что-то упустил или это просто функция, которую я желаю? О, и здесь идет мой конфиг:

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

    BalancerMember http://host1:8080/ route=h1 timeout=20 retry=40 
    BalancerMember http://host2:8080/ route=h2 timeout=20 retry=40 
</Proxy> 

# Distribute by Round Robin, use Sticky Sessions 
ProxyPass/balancer://s/ stickysession=JSESSIONID lbmethod=byrequests nofailover=On 
ProxyPassReverse/http://host1:8080/ 
ProxyPassReverse/http://host2:8080/ 

Best, Sebastian

ответ

4

Вы указанный nofailover = On, который означает, что он не будет отказоустойчивые, следовательно, 502 ошибки. Если вы хотите, чтобы он перешел на другой ресурс, он должен быть nofailover = Off, что означает, что он должен переходить на другой ресурс.