HAProxy-Switch nur bei Serverausfall

13

Angenommen, ich habe zwei Server - SA und SB. Ist es möglich, HAProxy so zu konfigurieren, dass es so funktioniert:

Alle Verbindungen gehen zu SA -> SA geht aus -> HAProxy schaltet alle Verbindungen zu SB -> bis SB nicht aus ist - es gehen keine Verbindungen zu SA, auch wenn es wieder hoch ist -> SB aus -> HAProxy schaltet zu SA. .

Kurz gesagt, ich möchte, dass HAProxy nur wechselt, wenn der aktuelle Server ausfällt. Vielleicht sollte ich etwas anderes als HAProxy verwenden?

Joe
quelle

Antworten:

22

Schauen Sie sich diese Konfiguration an:

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

Alle Anfragen treffen standardmäßig auf web01. web02 wird nicht verwendet. Wenn web01 nicht mehr reagiert, wird der Server nach 30 Sekunden (3 Überprüfungen im Abstand von 10 Sekunden) offline geschaltet. web02 wird online geschaltet und alle Anfragen treffen es.

Wenn web01 wiederhergestellt wird, wird es nur einmal wieder online geschaltet. 99999999 Überprüfungen werden alle 10 Sekunden durchgeführt - was praktisch nie der Fall ist.

chrskly
quelle
Das sieht interessant aus. Ich werde deine und @Dennis Lösung ausprobieren. Ich muss auch ein paar Tests machen, damit ich ein paar Ergebnisse bekomme. Vielen Dank.
Joe
1
Ist es möglich, web01 manuell offline zu schalten? Web01 wird nicht heruntergefahren / beendet, sondern nur als heruntergefahren markiert?
Limbo Peng
Zu Ihrer Information : Der Standardwert istinter 2s, der fallStandardwert 2 und der Standardwertrise 2. Weitere Informationen
Joshua Pinter
5
-1, Lösung funktioniert nach 31 Jahren Betriebszeit nicht mehr = P
Gaspa79
6

Wenn Sie nur zwei und genau zwei Server haben, ist es möglicherweise sinnvoller, einen vip für den Dienst zu verwenden, den Sie über Schrittmacher / Corosync verwalten, um ihn hoch verfügbar zu machen.

Dies ist auch mit Haproxy möglich, indem SB als Backup-Server markiert wird. Auf diese Weise wird es nur verwendet, wenn SA nicht verfügbar ist:

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

Dies führt jedoch nicht zum zweiten Teil Ihrer Anforderungen: Sobald A SA wieder verfügbar ist, wird A SA wieder verwendet. Ich bin nicht sicher, ob es eine Option gibt, mit der sich Haproxy wie gewünscht verhält. Ich habe es zumindest noch nie benutzt.

Dennis Kaarsemaker
quelle