503 Service Unavailable

Serwer nie może teraz obsługiwać żądań.

Kiedy go używać

Prace serwisowe lub przeciążenie. Dołącz Retry-After, jeśli wiesz, kiedy usługa wróci.

Typowe przyczyny i rozwiązania

Serwer odrzuca żądania celowo lub tymczasowo: tryb serwisowy, przeciążenie, wszystkie backendy oblewające health checki albo limit żądań, bo limit_req w nginx domyślnie zwraca 503. Na load balancerze 503 zwykle oznacza brak zarejestrowanych lub zdrowych celów: sprawdź stan celów, ścieżkę i port health checka oraz to, czy nowe wdrożenia go przechodzą. Ingress w Kubernetes pokazuje to samo, gdy Service nie ma gotowych endpointów.

Przy planowanych pracach serwisowych zwracaj 503 z Retry-After zamiast 200 ze stroną o przerwie technicznej, żeby wyszukiwarki zachowały Twoje strony w indeksie; Google toleruje 503 przez dzień lub dwa, ale dłuższe przerwy mogą skończyć się usunięciem URL-i. Klienty powinny ponawiać żądania z backoffem i respektować Retry-After. Health checki powinny być lekkie, żeby jedna wolna baza danych nie wyrzuciła z rotacji wszystkich instancji naraz.

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 503 Service Unavailable

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP