
Ich habe eine Webanwendung, die auf 127.0.0.1:8080 läuft. Zunächst habe ich sie nginx.conf
mit konfiguriert localhost:8080
. Beispiel:
location / {
proxy_set_header Host $host;
proxy_pass http://localhost:8080;
}
Dies funktionierte in 99 % der Fälle einwandfrei. Das Problem war jedoch, dass, wenn ein Benutzer eine Anfrage stellte, die eine Panik in meiner Webanwendung auslöste, dieser Benutzer nicht nur einen 502-Fehler erhielt, sondern meine gesamte Website für ALLE Benutzer nicht erreichbar war. Bis ich die Webanwendung manuell neu startete.
Das erwartete Verhalten war, dass der Benutzer, der den Fehler auslöste, einen 502-Fehler erhielt, der jedoch für alle anderen Benutzer isoliert war. Die Site wäre also weiterhin zugänglich und nicht für alle nicht erreichbar.
Ich wusste lange nicht, wie ich das beheben könnte. Bis ich anfing, 127.0.0.1:8080
anstelle von zu verwenden localhost:8080
. Also
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
127.0.0.1:8080
Wenn ein Benutzer eine Panik in meiner Webanwendung auslöst, ist meine Site nicht mehr für alle erreichbar .
Was ist der Grund dafür? Das dachte ich mir localhost
und 127.0.0.1
war auch so. Liegt das daran, dass localhost
der Server noch eine DNS-Anfrage stellen muss und der DNS aufgrund des Fehlers irgendwie nicht verfügbar ist?