Conmutador HAProxy solo en caso de caída del servidor

13

Digamos que tengo 2 servidores: SA y SB. ¿Es posible configurar HAProxy para que funcione así?

Todas las conexiones van a SA -> SA cae -> HAProxy cambia todas las conexiones a SB -> hasta que SB no está abajo - no hay conexiones van a SA, incluso si está arriba otra vez -> SB abajo -> HAProxy cambia a SA .. .

En resumen, me gustaría que HAProxy cambie solo cuando el servidor actual se caiga. ¿Quizás debería usar algo más que HAProxy?

Joe
fuente

Respuestas:

22

Echa un vistazo a esta configuración:

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 las solicitudes llegarán a web01 de forma predeterminada. No se utilizará web02. Si web01 deja de responder, después de 30 segundos (3 comprobaciones a intervalos de 10 segundos) el servidor se desconectará. web02 se pondrá en línea y todas las solicitudes llegarán a él.

Si web01 se recupera, solo se volverá a poner en línea una vez que 99999999 compruebe con un intervalo de 10 segundos, lo que en realidad nunca es.

chrskly
fuente
Eso se ve interesante. Probaré tu solución y @Dennis. También tengo que hacer algunas pruebas para poder obtener algunos resultados. Gracias.
Joe
1
¿Es posible desconectar web01 manualmente? ¿No está cerrando web01 / matando su proceso, solo marque como inactivo?
Limbo Peng
FYI: el valor interpredeterminado es 2s, el valor fallpredeterminado es 2 y el valor risepredeterminado es 2. Puede encontrar más aquí: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter
55
-1, la solución dejó de funcionar después de 31 años de tiempo de actividad = P
Gaspa79
6

Si solo tiene dos, y exactamente dos servidores, puede tener más sentido usar un vip para el servicio que administra a través de marcapasos / corosync para que esté altamente disponible.

También es posible con haproxy, marcando SB como servidor de respaldo. De esa manera solo se usa cuando SA no está disponible:

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

Sin embargo, esto no logra la segunda parte de lo que desea: comenzará a usar A SA nuevamente tan pronto como regrese. No estoy seguro de si hay una opción para hacer que el haproxy se comporte de la manera deseada. Al menos nunca lo he usado.

Dennis Kaarsemaker
fuente