Ein sauberer Umgang mit „502/503/504“-Playbook-Incidents entscheidet oft darüber, ob ein Team in Minuten zur Ursache kommt oder stundenlang zwischen „Netzwerk“, „Load Balancer“ und „App“ pendelt. Die Herausforderung: 502 Bad Gateway, 503 Service Unavailable und 504 Gateway Timeout sind fast immer Proxy- oder Gateway-Sicht auf ein Problem „hinter“ dem Gateway – nicht zwingend die eigentliche Root Cause. Gleichzeitig wirken die Symptome ähnlich: erhöhte Fehlerquote, erhöhte Latenz, abgebrochene Requests, Kunden melden „Seite lädt nicht“. Ein belastbares Playbook trennt deshalb drei Kernfälle: Upstream Down (Backend nicht erreichbar oder keine gesunden Targets), Timeout (Backend antwortet zu langsam oder hängt), und Misroute (Traffic geht an das falsche Ziel, falscher Host/Path/Service, falsche Route- oder DNS-Auflösung). Dieser Artikel liefert ein praxisnahes Runbook, das Einsteiger und Profis gleichermaßen nutzen können: Welche Signale sind entscheidend, welche Logs und Metriken brauchen Sie, welche Checks führen schnell zur richtigen Hypothese – und wie vermeiden Sie typische Fehldiagnosen wie „es ist das Netzwerk“, obwohl es eigentlich ein Deploy- oder Routing-Fehler ist.
Grundverständnis: Was 502, 503 und 504 im Gateway-Kontext bedeuten
Bevor Sie triagieren, sollten Sie die semantische Rolle dieser Codes klären. Im Gateway- oder Proxy-Kontext sind sie typischerweise eine Übersetzung von Upstream-Fehlern. Die genaue Bedeutung hängt vom Produkt ab (NGINX, Envoy, HAProxy, Cloud-LB), folgt aber oft denselben Mustern:
- 502 Bad Gateway: Der Proxy konnte keine gültige Antwort vom Upstream verarbeiten. Häufige Ursachen sind Verbindungsabbrüche, ungültige Protokollantworten, TLS-Handshake-Probleme zum Upstream oder ein Upstream, der „komisch“ antwortet (z. B. Reset, falsches HTTP, kaputtes gRPC).
- 503 Service Unavailable: Der Proxy hat keinen verwendbaren Upstream. Typisch bei „keine gesunden Targets“, aktiver Wartung, Rate Limiting, Circuit Breaker oder Overload-Schutz. Auch Misroutes können als 503 erscheinen, wenn die Route auf einen Cluster zeigt, der leer ist.
- 504 Gateway Timeout: Der Proxy hat rechtzeitig eine Verbindung aufgebaut, aber innerhalb des definierten Zeitfensters keine (vollständige) Antwort erhalten. Das ist ein starkes Signal für Timeout-Ketten: Upstream langsam, Dependency langsam, Queueing, Threadpool-Sättigung oder Deadlocks.
Die allgemeine HTTP-Semantik von Statuscodes ist in RFC 9110 (HTTP Semantics) beschrieben. Für konkrete Proxy-Interpretationen lohnt sich zusätzlich ein Blick in die jeweilige Produktdokumentation, weil Details wie „wer hat den Timeout ausgelöst?“ je nach Stack variieren.
Die drei Hauptklassen trennen: Upstream Down vs. Timeout vs. Misroute
Ein effizientes Playbook arbeitet nicht mit 20 möglichen Ursachen, sondern mit drei Diagnosepfaden. Ziel ist, innerhalb weniger Minuten zu entscheiden, welcher Pfad am wahrscheinlichsten ist:
- Upstream Down: Kein erreichbarer/gesunder Backend-Endpunkt oder der Upstream ist hart offline.
- Timeout: Upstream ist erreichbar, aber zu langsam oder blockiert; der Proxy bricht ab.
- Misroute: Der Traffic landet am falschen Ort (falscher Service, falsche Version, falscher Cluster, falsches Subnet, falscher Hostheader, falscher DNS-Eintrag).
Wichtig: Ein Incident kann in der Realität mehrere Pfade enthalten. Ein Misroute kann Backends „leer“ machen (503), ein Timeout kann Retries triggern und Backends überlasten (503/502), und ein Upstream Down kann Clients zu aggressivem Retry bewegen (zusätzliche Timeouts). Trotzdem ist die Pfad-Trennung der schnellste Weg zu einer belastbaren Ersthypothese.
Schnellstart-Checks: Die 5 Fragen, die Sie immer zuerst beantworten
- Kommt der Fehler vom Edge-Gateway oder vom Service selbst? (Header, Error-Body, Response-Server-Header, Trace-Span „gateway“)
- Ist es ein Spike oder eine Stufe? (plötzlicher Sprung nach Deploy spricht für Misroute/Config; graduelle Verschlechterung eher für Timeout/Overload)
- Welche Codes dominieren? (504 dominiert → Timeout-Pfad; 503 dominiert → Upstream Down/Overload/Misroute; 502 dominiert → Protokoll/TLS/Reset/Upstream-Fehlverhalten)
- Ist nur ein Endpoint betroffen oder alle? (nur /login oder /api/v2 → Misroute oder spezifische Dependency; alles betroffen → Upstream Down oder Gateway-Problem)
- Ist es zonal/regional oder global? (nur eine AZ/Region → Target-Health, Routing, Netzpfad; global → Deploy/Config/DNS/WAF-Policy)
Upstream Down: Symptome, Signale und typische Ursachen
„Upstream Down“ bedeutet in der Praxis: Das Gateway findet keinen funktionierenden Backend-Endpunkt. Das kann ein echter Ausfall sein (Pods tot), aber auch ein Kontrollplane- oder Konfigurationsproblem (Health Checks falsch, falsches Target-Label, falscher Port). Typische Signale:
- 503 steigt stark, oft ohne große Latenzerhöhung (weil schnell abgelehnt wird).
- Gateway-Logs zeigen „no healthy upstream“, „upstream unavailable“ oder „cluster not found“.
- Health-Check-Metriken: Anzahl gesunder Targets fällt auf 0 oder nahe 0.
- Backend-Metriken: Request-Rate am Service fällt ab (weil Traffic gar nicht ankommt).
Upstream-Down-Diagnose in 10 Minuten
- Check 1: Target Health: Sind Backend-Instanzen/Pods als „healthy“ registriert? Stimmen Health-Check-Pfad, Port, Protokoll?
- Check 2: Deploy- und Autoscaling-Events: Gab es ein Rollout, das alle Pods neu startet? Gibt es CrashLoopBackOff? Ist HPA/ASG limitiert?
- Check 3: Service Discovery: Zeigt DNS/Service-Registry auf die richtigen IPs? Gibt es NXDOMAIN oder veraltete Records?
- Check 4: Netzpfad/Policies: Security Groups/NetworkPolicies/Firewall-Regeln blocken Health Checks oder Traffic?
- Check 5: Zertifikate/Handshake: Wenn der Upstream per TLS angesprochen wird: schlagen Handshakes fehl, sodass „healthy“ nie erreicht wird?
Ein klassischer Upstream-Down-Fall ist ein falsch konfigurierter Health Check nach einem Deploy: Der Service liefert z. B. plötzlich 401 auf /health, der Load Balancer markiert alles als unhealthy, und Kunden bekommen 503 – obwohl der Service „eigentlich läuft“.
Timeout: 504 sauber erklären und die Timeout-Kette aufbrechen
504 ist in vielen Umgebungen das deutlichste Symptom, aber nicht automatisch die Root Cause. Entscheidend ist die Frage: Wer timed out? Der Client? Der Edge-Proxy? Ein internes Gateway? Oder eine Downstream-Dependency? Wenn Sie diese Stelle lokalisieren, finden Sie schneller die echte Engstelle (Queueing, Threadpool, Datenbank, Cold Start, GC, externe API).
Timeout-Budgeting als Orientierung (MathML)
Ein pragmatisches Modell ist, die End-to-End-Zeit in Teilbudgets zu zerlegen. Wenn Tclient das Client-Timeout ist, sollte die Summe der internen Budgets darunter liegen:
T_gateway + T_service + T_dependency < T_client
Wenn Ihr Gateway-Timeout größer ist als das Client-Timeout, sind 504-Diagnosen verwirrend, weil der Client vorher abbricht und der Server weiterarbeitet. Umgekehrt kann ein zu kleiner Gateway-Timeout unnötige 504 erzeugen, obwohl der Service knapp später erfolgreich geantwortet hätte.
Timeout-Signale, die den richtigen Pfad bestätigen
- 504 plus erhöhte Latenz (P95/P99 steigt deutlich), oft begleitet von Queueing.
- Backend-Request-Rate bleibt stabil oder steigt sogar (Traffic kommt an, aber Antworten dauern zu lange).
- Backend-Fehler ändern sich nicht zwingend: Der Service kann intern „ok“ sein, aber langsam.
- Spans in Traces zeigen, wo Zeit verbrannt wird (DB, externe Calls, Locking).
Timeout-Ursachen, die häufig übersehen werden
- Threadpool-/Worker-Sättigung: Requests warten in einer Queue; CPU ist nicht zwingend 100%.
- Connection Pool Exhaustion: z. B. DB-Pool zu klein, externe HTTP-Pools blockieren.
- Retries verstärken Tail Latency: interne Retries erhöhen Last genau während der Degradation.
- Cold Starts: neue Pods/Functions brauchen länger (JIT, Cache Warmup).
- GC-Pausen oder Memory Pressure: sporadische Peaks erzeugen 504-Spikes.
Misroute: Wenn Traffic „irgendwohin“ geht und niemand es merkt
Misroutes sind besonders gefährlich, weil sie sich wie Upstream Down oder Timeout anfühlen, aber das eigentliche Problem eine Routing- oder Konfigurationsabweichung ist. Misroute heißt nicht nur „falscher Service“ – es kann auch „richtiger Service, falsche Version“ oder „richtiger Cluster, falsche Zone“ bedeuten.
Typische Misroute-Symptome
- Plötzlicher Fehlerbeginn direkt nach Config/Deploy (Ingress-Regeln, Gateway-Routes, DNS-Änderung).
- Nur bestimmte Hosts oder Paths betroffen (z. B. /api/v2 funktioniert, /api/v1 nicht).
- 502 oder 503 treten auf, obwohl Backends gesund sind – weil der Proxy auf einen leeren oder falschen Cluster zeigt.
- Unerwartete Backends sehen Traffic (z. B. ein anderer Service hat plötzlich Last).
Misroute-Checkliste: Was Sie sofort prüfen sollten
- Hostheader / SNI: Kommt der richtige Host beim Gateway an? Stimmen Zertifikat/SNI und Route-Matching?
- Path- und Header-Matches: Haben Sie eine neue Route eingeführt, die „zu viel“ matcht und Traffic abfängt?
- DNS: Zeigt der Name auf die richtige VIP/Load-Balancer-Adresse? Gibt es alte Records oder split-horizon Unterschiede (intern vs. extern)?
- Service-Selektoren: In Kubernetes: stimmt der Service-Selector noch? Zeigt er auf 0 Pods?
- Port/Protocol Mismatch: gRPC vs. HTTP/1.1, h2c vs. TLS, falscher Target-Port – das erzeugt häufig 502.
Für HTTP/2, gRPC und Protokollverhandlungen ist ALPN besonders relevant. Wenn ein Gateway z. B. HTTP/2 zum Upstream erwartet, der Upstream aber nur HTTP/1.1 spricht (oder umgekehrt), kann das als 502 erscheinen. Grundlagen zu HTTP/2 finden Sie in RFC 9113.
502-Vertiefung: Protokollfehler, TLS-Probleme und „Bad Gateway“ ohne klare Hinweise
502 ist der Code, der Teams am häufigsten verwirrt, weil er viele Fehlerklassen abdeckt. Die zentrale Frage lautet: Hat der Proxy überhaupt eine gültige Upstream-Antwort gesehen? Wenn nicht, ist 502 oft ein Hinweis auf Verbindungsabbrüche, Resets, TLS-Handshake-Failures oder Protokollinkompatibilität.
Die häufigsten 502-Ursachen in der Praxis
- TLS-Handshake zum Upstream schlägt fehl: abgelaufenes Zertifikat, falsche CA, SNI mismatch, Cipher/Protocol mismatch.
- Upstream reset: der Service beendet die Verbindung (z. B. Prozess restart, OOM, Idle-Timeout, Proxy zwischen den Systemen).
- Ungültige HTTP-Antwort: kaputte Header, zu große Header, falsches Protokoll auf dem Port.
- gRPC-Mismatch: Gateway spricht HTTP/1.1, Upstream erwartet HTTP/2 (oder umgekehrt).
- Upstream sendet früh ein FIN/RST unter Last, weil er Ressourcen schützen will.
Welche Logs Sie für 502 zwingend brauchen
- Gateway-Access Logs mit Upstream-Status, Upstream-Response-Time, Upstream-Connect-Time, Retry-Count.
- Error Logs mit konkretem Fehlergrund (Handshake failure, connection reset, upstream prematurely closed).
- Backend-Logs mit Korrelations-ID: Kommt der Request dort an? Wenn nicht, ist es oft Misroute oder Connect/TLS.
Für viele Teams ist es ein großer Gewinn, standardisierte Felder in Access Logs zu etablieren (z. B. upstream_status, upstream_connect_time, upstream_response_time). In Envoy-Setups ist die Observability rund um Upstream-Failures besonders detailliert dokumentiert in der Envoy-Dokumentation.
Praktisches Playbook: Entscheidungspfad als Runbook-Schablone
Im Incident zählt Geschwindigkeit. Die folgende Struktur ist so gebaut, dass Sie sie direkt in ein Runbook oder Ticket-Template übernehmen können.
Schritt 1: Wo entsteht der Fehler?
- Edge-Gateway: Fehlerseite/Headers deuten auf Proxy, z. B. „server: nginx“ oder eine standardisierte Gateway-Error-Page.
- Service: Response hat Applikationssignaturen, z. B. JSON-Error-Format, spezifische Header.
- Zwischengateway: interne Gateways können eigene Codes erzeugen; Trace hilft, die Ebene zu identifizieren.
Schritt 2: Dominanter Code
- 504 dominiert: Timeout-Pfad priorisieren.
- 503 dominiert: Upstream Down oder Overload/Misroute priorisieren.
- 502 dominiert: Protokoll/TLS/Reset oder Misroute/Port-Mismatch priorisieren.
Schritt 3: Backend sieht Traffic?
- Backend-RPS fällt: eher Upstream Down oder Misroute (Traffic kommt nicht an).
- Backend-RPS stabil/steigt: eher Timeout oder Backend-Degradation (Traffic kommt an, aber Antwort scheitert/spät).
Schritt 4: Health- und Routing-Integrität
- Targets healthy? Wenn nein: Upstream Down (oder Health-Check-Fehlkonfiguration).
- Route zeigt wohin? Validieren Sie Host/Path-Matches, Service-Selektoren, Upstream-Cluster, DNS.
Schritt 5: Timeout-Kette lokalisieren
- Gateway-Timing: connect_time klein, response_time groß → Backend langsam.
- Connect-Time groß: Netzpfad, SYN/ACK-Probleme, Port nicht offen, Security Policy, misroute auf falschen Port.
- Traces: welcher Span frisst Zeit? Datenbank? externer Call? Lock?
Observability-Mindeststandard: Metriken, die 502/503/504 diagnostizierbar machen
Viele Organisationen haben „Requests/s“ und „Error rate“, aber das reicht nicht, um Gateway-Errors sauber zu trennen. Ein Minimalset:
- Gateway: Requests, 4xx/5xx nach Status, Upstream-Status, Retry-Count, Connection Errors, Timeouts, P95/P99 Latenz, aktive Verbindungen, Queue/Worker-Auslastung.
- Backend: RPS, Fehler nach Klasse, Latenz, Threadpool/Queue, CPU, Memory, GC, Sättigung der Connection Pools (DB/HTTP).
- Dependencies: DB-Query-Latenz, externe API-Latenz, Fehlerquoten, Rate Limits.
- Traces: End-to-End Trace mit Spans für Gateway, Service, Dependency; Tagging für attempt/retry.
Wenn Sie ein Standard-Framework für Telemetrie brauchen, ist OpenTelemetry eine sinnvolle Grundlage für konsistente Traces und Metriken über Teams hinweg.
Vermeidungspraktiken: Wie Sie 502/503/504-Events seltener machen
- Health Checks robust gestalten: Pfad stabil halten, Auth vermeiden, klare Zeitlimits, getrennte Readiness/Liveness.
- Timeouts abgestimmt konfigurieren: Client-, Gateway- und Service-Timeouts als Budget planen, nicht unabhängig.
- Retries begrenzen: Backoff + Jitter + Budget, sonst verwandeln Sie Degradation in Outage.
- Canary-Deployments: Misroutes und Protokollmismatches früh erkennen (kleiner Traffic-Anteil zuerst).
- Konfigurationsänderungen versionieren: Gateways/Ingress wie Code behandeln, mit Review und Tests.
- Route-Tests: Synthetische Checks für Host/Path-Kombinationen, besonders nach Änderungen.
Outbound-Links für Referenzen und Vertiefung
- RFC 9110: HTTP Semantics (Statuscodes, grundlegende Bedeutung)
- RFC 9112: HTTP/1.1 (Transportdetails, Connection-Verhalten)
- RFC 9113: HTTP/2 (ALPN, Protokollunterschiede, gRPC-Nähe)
- Envoy Proxy Dokumentation (Upstream-Failures, Timeouts, Retries)
- NGINX Dokumentation (Proxying, Error Codes, Upstream-Konfiguration)
- OpenTelemetry (Traces und Metriken für schnelle Incident-Diagnosen)
Cisco Netzwerkdesign, CCNA Support & Packet Tracer Projekte
Cisco Networking • CCNA • Packet Tracer • Network Configuration
Ich biete professionelle Unterstützung im Bereich Cisco Computer Networking, einschließlich CCNA-relevanter Konfigurationen, Netzwerkdesign und komplexer Packet-Tracer-Projekte. Die Lösungen werden praxisnah, strukturiert und nach aktuellen Netzwerkstandards umgesetzt.
Diese Dienstleistung eignet sich für Unternehmen, IT-Teams, Studierende sowie angehende CCNA-Kandidaten, die fundierte Netzwerkstrukturen planen oder bestehende Infrastrukturen optimieren möchten. Finden Sie mich auf Fiverr.
Leistungsumfang:
-
Netzwerkdesign & Topologie-Planung
-
Router- & Switch-Konfiguration (Cisco IOS)
-
VLAN, Inter-VLAN Routing
-
OSPF, RIP, EIGRP (Grundlagen & Implementierung)
-
NAT, ACL, DHCP, DNS-Konfiguration
-
Troubleshooting & Netzwerkoptimierung
-
Packet Tracer Projektentwicklung & Dokumentation
-
CCNA Lern- & Praxisunterstützung
Lieferumfang:
-
Konfigurationsdateien
-
Packet-Tracer-Dateien (.pkt)
-
Netzwerkdokumentation
-
Schritt-für-Schritt-Erklärungen (auf Wunsch)
Arbeitsweise:Strukturiert • Praxisorientiert • Zuverlässig • Technisch fundiert
CTA:
Benötigen Sie professionelle Unterstützung im Cisco Networking oder für ein CCNA-Projekt?
Kontaktieren Sie mich gerne für eine Projektanfrage oder ein unverbindliches Gespräch. Finden Sie mich auf Fiverr.

