O balanceador de carga do apache pode localizar se um dos membros do balanceador está inoperante?

2

Eu preciso saber se o apache pode, sabiamente e automaticamente, detectar se um dos seus membros balaner está inoperante e, conseqüentemente, isento de atender às solicitações?

P.S. Os servidores de backend não produzirão pulsação.

Obrigado

Comentários: Estou usando mod_proxy no apache 2.4.7 Minha configuração para um site de exemplo é como abaixo, Meu problema é quando um dos servidores de back-end não responde, meu balanceador de carga ainda envia solicitações para o servidor back-end morto e os clientes são reclamando. O que há de errado com a configuração abaixo:

<Proxy balancer://X_Balancer>
    BalancerMember http://firsthost.sth/ status=-SE
    BalancerMember http://anotherhost.sth/ status=-SE
    ProxySet lbmethod=bybusyness
</Proxy>
<VirtualHost IPofloadbalancer:80>
    ServerName domainname
    SSLProxyEngine On
    Include /*/modsecurity.conf
    <location />
        ProxyPass balancer://X_Balancer/
        ProxyPassReverse balancer://X_Balancer/
    </location>
</VirtualHost>
    
por Ehsan Mahdavi 02.07.2014 / 15:07

2 respostas

3

Se você usar mod_proxy no Apache 2.2, você tem opções de configuração limitadas, mas o Apache detectará balancerMembers sem resposta e distribuirá solicitações para qualquer balancerMembers restante.

O Apache 2.4 já tem mais algumas opções, mas para opções mais avançadas você ' Geralmente, é melhor usar um software de balanceamento de carga mais especializado.

Após seus comentários: Depende de como o balancerMember para de responder. Se uma conexão ainda puder ser feita, mas nenhum código de erro e nenhuma resposta for exibida, você poderá se beneficiar da configuração das opções timeout e failontimeout .

<Proxy balancer://X_Balancer>
    BalancerMember http://firsthost.sth/ status=-SE timeout=5 retry=60
    BalancerMember http://anotherhost.sth/ status=-SE timeout=5 retry=60
    ProxySet lbmethod=bybusyness failontimeout=on
</Proxy>

timeout=5 Tempo limite da conexão em segundos. O número de segundos que o Apache httpd espera por dados enviados por / para o backend.
failontimeout=on Se definido, um tempo limite de leitura de E / S depois que uma solicitação for enviada para o back-end forçará o trabalhador a um estado de erro. A recuperação do trabalhador se comporta da mesma forma que outros erros do trabalhador.

    
por 02.07.2014 / 15:33
0

BalancerMember link connectiontimeout = 5 retry = 5 ping = 2
BalancerMember link connectiontimeout = 5 retry = 5 ping = 2

Experimente na direção acima! Revise as alterações nos protocolos ajp.

    
por 15.11.2017 / 11:13