2017-01-18 2 views
0

Ich benutze Nginx als Load Balancer (Reverse Proxy) und alles sieht gut aus bis jetzt.Wie konfiguriere ich Nginx Upstream für einen gestoppten Backend-Host?

Das Problem, das ich versuche zu lösen, ist irgendwie nginx zu verstehen, dass ein Upstream-Backend-Server ist down und keine Anfragen an sie senden. Mit down will ich wirklich sagen, dass es keinen solchen Server gibt oder heruntergefahren wird.

Fall 1: 2 Back-End-Server auf Upstream definiert, beide laufenden Instanzen und 1 Back-End-Anwendung wird gestoppt. Than Nginx versteht, dass es nicht aktiv ist und nicht versucht, erneut Anfragen während fail_timeout (standardmäßig 10 Sekunden) - Dies ist in Ordnung und bereits akzeptabel.

Fall 2: 2 Back-End-Server auf Upstream definiert, aber 1 real laufenden Instanz. Nginx versucht immer noch, die Anfragen so zu balancieren, als wären beide oben und stopped (nicht existierendes) Backend nicht als unhealthy markiert. In diesem Fall erhalte ich 504 Gateway Timeout.

Was ich erreichen möchte ist, dass nginx wie Fall 1 funktioniert und das Backend als ungesund markiert, ohne 504 Gateway Timeout zu empfangen.

Irgendwelche Ideen? Konfigurationsoption?

Antwort

1

Ein wenig mehr Untersuchung der Nginx-Konfiguration führte mich zu dieser Konfigurationslinie. Incase jemand braucht;

proxy_next_upstream error timeout http_504; 
Verwandte Themen