Ich habe einen Apache httpd-Webserver, auf dem mod_proxy und mod_proxy_balancer ausgeführt werden. Das gesamte / somedir wird an 2 Worker-Maschinen gesendet, die die Anforderungen mithilfe des Round-Robin-Schedulers bearbeiten. Auf jedem Worker-Computer wird IIS ausgeführt, aber ich denke nicht, dass dies wichtig ist.
Ich kann die Funktionsweise des Load Balancers demonstrieren, indem ich wiederholt eine einzelne Seite anfordere, die die IP-Adresse des Computers enthält, und sehe, dass sie auf vorhersehbare Round-Robin-Weise von einem zum anderen wechselt.
Wenn ich einen der IIS-Server ausschalte und dieselbe Seite anfordere, enthält jede Seite nur die IP-Adresse des Computers, der aktiv ist. Wenn ich jedoch IIS starte und meine IIS-Anwendung nicht ausführe, gibt / somedir 500 zurück (wie es sollte).
Ich habe dem Failonstatus (Apache 2.4) 500 hinzugefügt. Wenn der Fehler auftritt, versetzt Apache den Worker-Computer in den Fehlerzustand. Apache gibt den Proxy-Fehler dennoch an den Client zurück. Wie kann ich Apache veranlassen, den Proxy-Fehler abzufangen und es mit einem anderen Worker auf dieselbe Weise wie bei einem Verbindungsfehler erneut zu versuchen?
Aktualisieren
In StackOverflow wird fast dieselbe Frage gestellt, also verbinden Sie sie miteinander.
/programming/11083707/httpd-mod-proxy-balancer-failover-failonstatus-transperant-switching
HTTP 200 OK
Antwortcode.