Na lokalnej maszynie programistycznej mam odwrotne proxy nginx, takie jak:
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;
}
Jednak jeśli debuguję aplikację, odpowiedź może zostać opóźniona na nieskończony czas, ale po 30 sekundach otrzymuję:
504 Gateway Time-out
w odpowiedzi.
Jak mogę wyłączyć limit czasu i pozwolić, aby mój zwrotny serwer proxy czekał wiecznie na odpowiedź? I podoba mi się, że ustawienie ma charakter globalny, więc nie muszę go ustawiać dla każdego serwera proxy.
nginx
configuration
timeout
k0pernikus
źródło
źródło
Odpowiedzi:
Wyłączenie go może być w ogóle niemożliwe, ale wykonalnym obejściem jest zwiększenie czasu wykonywania. Na stronie z samouczkami nginx napisano:
i ponownie załaduj konfigurację nginx:
Użyłem dość dużej wartości, która jest mało prawdopodobna, tj.
999999
Lub przy użyciu jednostek czasu , do jednego dnia1d
.Uwaga: ustawienie tej wartości
0
spowoduje natychmiastowy błąd przekroczenia limitu czasu bramy.źródło
0
niedziałaniu! Pamiętaj, że możesz określić jednostki czasu z czytelnymi przyrostkami , abyś mógł użyć wartości takiej jak1d
.proxy_connect_timeout 600;
plik nginx.conf, ale limit czasu nadal wynosi 60 sekund. Coś jeszcze powinienem spróbować?Jeśli używasz AWS i modułu równoważenia obciążenia, powinieneś edytować limit czasu bezczynności. Myślę, że domyślnie jest to 60 sekund
źródło
Walczyłem z błędem przekroczenia limitu czasu nginx 502 i nie mogłem rozwiązać problemu. Jednak zdarzało się, że był gunicorn, powodując błąd przekroczenia limitu czasu. Może być więc konieczne sprawdzenie ustawień fastcgi.
Dla gunicorn to:
źródło