Auf einem lokalen Entwicklungscomputer habe ich einen Nginx-Reverse-Proxy wie folgt:
server {
listen 80;
server_name myvirtualhost1.local;
location / {
proxy_pass http://127.0.0.1:8080;
}
server {
listen 80;
server_name myvirtualhost2.local;
location / {
proxy_pass http://127.0.0.1:9090;
}
Wenn ich jedoch meine Anwendung debugge, kann es sein, dass die Antwort unendlich lange verzögert ist. Nach 30 Sekunden erhalte ich jedoch Folgendes:
504 Gateway Time-out
als Antwort.
Wie kann ich das Timeout deaktivieren und meinen Reverse Proxy für immer auf eine Antwort warten lassen? Und ich mag es, wenn die Einstellung global ist, damit ich sie nicht für jeden Proxy festlegen muss.
nginx
configuration
timeout
k0pernikus
quelle
quelle
Antworten:
Möglicherweise kann es überhaupt nicht deaktiviert werden. Eine mögliche Problemumgehung besteht jedoch darin, die Ausführungszeit zu verlängern. Auf einer Nginx-Tutorial-Site wurde geschrieben:
und lade nginx 'config neu:
Ich habe einen ziemlich großen Wert verwendet, der wahrscheinlich nicht vorkommt, dh
999999
oder Zeiteinheiten für einen Tag über1d
.Beachten Sie, dass das Setzen des Werts auf
0
sofort einen Gateway-Timeout-Fehler verursacht.quelle
0
nicht funktioniert! Beachten Sie, dass Sie Zeiteinheiten mit lesbaren Suffixen angeben können , sodass Sie einen Wert wie verwenden können1d
.proxy_connect_timeout 600;
auch die Datei nginx.conf hinzugefügt , aber das Timeout beträgt immer noch 60 Sekunden. Sollte ich noch etwas versuchen?Wenn Sie AWS und Load Balancer verwenden, sollten Sie das Zeitlimit für Leerlauf bearbeiten. Ich denke, die Standardeinstellung ist 60 Sekunden
quelle
Ich habe mit Nginx 502 Timeout-Fehler gekämpft und konnte das Problem nicht lösen. Es handelte sich jedoch zufällig um einen Gunicorn, der den Timeout-Fehler verursachte. Möglicherweise müssen Sie auch Ihre FastCGI-Einstellungen überprüfen.
Für Gunicorn ist es:
quelle