502 Bad Gateway

Proxy otrzymało nieprawidłową odpowiedź od serwera, który za nim stoi.

Kiedy go używać

Aplikacja za nginx lub load balancerem uległa awarii albo zwróciła śmieci.

Typowe przyczyny i rozwiązania

Proxy, takie jak nginx, load balancer czy Cloudflare, nie dostało poprawnej odpowiedzi od aplikacji, która za nim stoi. Typowe przyczyny: aplikacja uległa awarii lub nie działa, nasłuchuje na innym porcie lub adresie, niż oczekuje proxy (127.0.0.1 zamiast 0.0.0.0 w Dockerze), zła ścieżka lub uprawnienia gniazda PHP-FPM albo zbyt duże nagłówki odpowiedzi. Log błędów nginx pokazuje wtedy „connection refused” lub „upstream prematurely closed connection”.

Sporadyczne 502 za AWS ALB to często wyścigi keep-alive: aplikacja zamyka bezczynne połączenia wcześniej niż balancer, więc ustaw w aplikacji limit keep-alive powyżej 60-sekundowego idle timeoutu ALB, np. server.keepAliveTimeout = 65000 w Node.js. Strona błędu Cloudflare pokazuje, czy zawiodła przeglądarka, Cloudflare czy Twój host. Sprawdź też pętle restartów po awariach w systemd lub Kubernetes oraz procesy zabite przez OOM w dmesg.

Błąd serwera (5xx)

Kody 5xx to błędy serwera: żądanie może być poprawne, ale zawiódł serwer lub coś za nim. Warto ustawić na nie alerty.

Jak to wygląda

HTTP/1.1 502 Bad Gateway

Jak go wysłać

Node.js / Expressres.status(502).end()
Python / Flaskreturn '', 502
nginxreturn 502;

Jak go sprawdzić

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Otwórz narzędzie Kody statusu HTTP