Switch HAProxy somente em caso de inatividade do servidor

13

Digamos que eu tenha 2 servidores - SA e SB. É possível configurar o HAProxy para funcionar assim:

Todas as conexões vão para SA -> SA cai -> HAProxy alterna todas as conexões para SB -> até que o SB não esteja inativo - nenhuma conexão vai para SA, mesmo se estiver novamente ativo -> SB inativo -> HAProxy muda para SA .. .

Em resumo, gostaria que o HAProxy alternasse apenas quando o servidor atual estiver inoperante. Talvez eu devesse usar sth mais que HAProxy?

Joe
fonte

Respostas:

22

Confira esta configuração:

listen my-server 0.0.0.0:80
    balance roundrobin
    server web01 10.10.10.1:80 check inter 10s fall 3 rise 99999999
    server web02 10.10.10.2:80 check backup

Todas as solicitações atingirão web01 por padrão. web02 não será usado. Se web01 parar de responder, após 30 segundos (3 verificações em intervalos de 10 segundos), o servidor será colocado offline. web02 será colocado online e todas as solicitações serão atingidas.

Se o web01 se recuperar, ele só será colocado novamente online depois que o 99999999 verificar com um intervalo de 10 segundos - o que nunca é efetivamente.

chrskly
fonte
Isso parece interessante. Vou tentar sua solução e @Dennis. Eu também tenho que fazer alguns testes para obter alguns resultados. Obrigado.
5133 Joe
1
É possível colocar o web01 offline manualmente? Não desligando web01 / matando seu processo, basta marcá-lo como desligado?
Limbo Peng
FYI: intero padrão é 2s, fallo padrão é 2, e riseo padrão é 2. Mais pode ser encontrado aqui: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter
5
-1, solução deixou de trabalhar após 31 anos de tempo de funcionamento = P
Gaspa79
6

Se você tiver apenas dois e exatamente dois servidores, pode fazer mais sentido usar um vip para o serviço que você gerencia via pacemaker / corosync para torná-lo altamente disponível.

Também é possível com haproxy, marcando SB como servidor de backup. Dessa forma, ele é usado apenas quando o SA não está disponível:

backend mybackend
mode            http
balance         roundrobin
option          httpchk /test.html
server          server1.example.com server1.example.com:80 weight 1 check port 80 inter 5s rise 3 fall 2
server          server2.example.com server2.example.com:80 backup weight 1 check port 80 inter 5s rise 3 fall 2

No entanto, isso não realiza a parte dois do que você deseja: começará a usar o A SA novamente assim que voltar. Não tenho certeza se existe uma opção para fazer a haoxi se comportar da maneira que você deseja. Eu pelo menos nunca usei.

Dennis Kaarsemaker
fonte