503 Service Unavailable

Der Server kann gerade keine Anfragen verarbeiten.

Wann du ihn verwendest

Wartung oder Überlastung. Gib Retry-After mit, wenn du weißt, wann der Dienst wieder da ist.

Häufige Ursachen und Lösungen

Der Server lehnt Anfragen absichtlich oder vorübergehend ab: Wartungsmodus, Überlastung, alle Backends fallen durch die Health-Checks oder ein Rate Limit, denn nginx limit_req gibt standardmäßig 503 zurück. Auf einem Load Balancer bedeutet 503 meist, dass es keine registrierten oder gesunden Targets gibt: Prüfe die Target-Health, Pfad und Port des Health-Checks und ob neue Deployments ihn bestehen. Kubernetes-Ingress zeigt dasselbe, wenn ein Service keine bereiten Endpoints hat.

Gib bei geplanter Wartung 503 mit Retry-After zurück statt 200 mit einer Wartungsseite, damit Suchmaschinen deine Seiten im Index behalten; Google toleriert 503 ein, zwei Tage, längere Ausfälle können aber URLs aus dem Index werfen. Clients sollten mit Backoff erneut versuchen und Retry-After beachten. Halte Health-Checks günstig, damit eine langsame Datenbank nicht alle Instanzen gleichzeitig aus der Rotation nimmt.

Server-Fehler (5xx)

5xx-Codes sind Server-Fehler: Die Anfrage kann in Ordnung sein, aber der Server oder etwas dahinter ist ausgefallen. Für diese Codes lohnt sich eine Alarmierung.

So sieht es aus

HTTP/1.1 503 Service Unavailable

So sendest du ihn

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

So prüfst du ihn

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

HTTP-Statuscodes öffnen