Ich bin neu bei Haproxy und Load Balancing. Ich möchte sehen, was passiert, wenn ein Backend-Host ausgeschaltet wird, während der Proxy läuft.HAproxy passive Gesundheitsprüfung
Das Problem ist, wenn ich eines der Backends ausschalte und den Browser aktualisiere die Seite stellt sofort einen 503 Fehler für den Benutzer. Nach dem nächsten Laden der Seite wird der Fehler nicht mehr angezeigt, da vermutlich das Back-End aus dem Pool entfernt wurde.
Als Test habe ich zwei Back-End-Flask-Anwendungen eingerichtet haben und HAProxy konfiguriert sie wie so auszubalancieren:
backend app
mode http
balanace roundrobin
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
Mein Verständnis nach dieser: https://www.haproxy.com/doc/aloha/7.0/haproxy/healthchecks.html#check-parameters
ist, dass alle 2 Sekunden eine der Backend-Hosts werden gepingt, um zu sehen, ob sie aktiv sind. Dann werden sie aus dem Pool entfernt, wenn sie nicht erreichbar sind. Der 5xx-Fehler tritt zwischen dem Zeitpunkt auf, an dem ich das Backend abbringe und den 2 Sekunden.
Ich würde denken, es eine Möglichkeit, um diesen 5xx Fehler zu erhalten ist, indem HAProxy eine wenig Logik durchzuführen, dass, wenn eine Anforderung vom Frontend ausfällt, wäre es dann, dass Backend aus dem Pool gescheitert entfernen, und dann zu einem anderen wechseln und mach eine andere Anfrage. Auf diese Weise würde der Benutzer den Fehler nie sehen.
Gibt es eine Möglichkeit, dies zu tun, oder sollte ich etwas anderes versuchen so, dass mein Benutzer keinen Fehler bekommen?
Fantastisch. Option Redispatch sieht aus wie genau das, was ich brauchte. – Jono