Switch HAProxy solo in caso di server inattivo


13

Diciamo che ho 2 server: SA e SB. È possibile configurare HAProxy per funzionare in questo modo:

Tutti i collegamenti vanno a SA -> SA scende -> HAProxy commuta tutti i collegamenti a SB -> fino a quando SB non è inattivo - nessun collegamento va a SA, anche se è di nuovo attivo -> SB giù -> HAProxy passa a SA .. .

In breve, vorrei che HAProxy passasse solo quando il server corrente non funziona. Forse dovrei usare altro che HAProxy?

Risposte:


22

Dai un'occhiata a questa configurazione:

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

Tutte le richieste raggiungeranno web01 per impostazione predefinita. web02 non verrà utilizzato. Se web01 smette di rispondere, dopo 30 secondi (3 controlli a intervalli di 10 secondi) il server verrà messo offline. web02 verrà portato online e tutte le richieste lo colpiranno.

Se web01 viene ripristinato, verrà riportato in linea solo dopo 99999999 controlli a intervalli di 10 secondi, il che in realtà non lo è mai.


Sembra interessante. Proverò la tua soluzione e @Dennis. Devo anche fare dei test per ottenere dei risultati. Grazie.
Joe,

1
È possibile portare manualmente web01 offline? Non chiudere web01 / uccidere il suo processo, basta contrassegnarlo come inattivo?
Limbo Peng,

Cordiali saluti: il intervalore predefinito è 2s, il fallvalore predefinito 2 e il risevalore predefinito 2. Ulteriori informazioni sono disponibili qui: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter

5
-1, la soluzione ha smesso di funzionare dopo 31 anni di attività = P
Gaspa79,

6

Se hai solo due e esattamente due server, potrebbe essere più sensato utilizzare un vip per il servizio che gestisci tramite pacemaker / corosync per renderlo altamente disponibile.

È possibile anche con haproxy, contrassegnando SB come server di backup. In questo modo viene utilizzato solo quando SA non è disponibile:

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

Tuttavia, ciò non soddisfa la seconda parte di ciò che desideri: inizierà a utilizzare nuovamente una SA non appena tornerà. Non sono sicuro che ci sia un'opzione per far sì che il haproxy si comporti nel modo desiderato. Almeno non l'ho mai usato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.