Ein Proxy hat eine ungültige Antwort vom Server dahinter erhalten.
Wann du ihn verwendest
Die App hinter nginx oder einem Load Balancer ist abgestürzt oder hat Unsinn geliefert.
Häufige Ursachen und Lösungen
Ein Proxy wie nginx, ein Load Balancer oder Cloudflare hat von der App dahinter keine gültige Antwort bekommen. Häufige Ursachen: Die App ist abgestürzt oder läuft nicht, sie lauscht auf einem anderen Port oder einer anderen Adresse, als der Proxy erwartet (127.0.0.1 statt 0.0.0.0 in Docker), ein falscher PHP-FPM-Socket-Pfad oder falsche Rechte darauf, oder zu große Response-Header. Das Fehlerlog von nginx meldet „connection refused“ oder „upstream prematurely closed connection“.
Sporadische 502er hinter AWS ALB sind oft Keep-alive-Races: Die App schließt inaktive Verbindungen, bevor der Load Balancer es tut, also setze den Keep-alive-Timeout der App über den Idle-Timeout des ALB von 60 Sekunden, zum Beispiel server.keepAliveTimeout = 65000 in Node.js. Die Fehlerseite von Cloudflare zeigt, ob der Browser, Cloudflare oder dein Host versagt hat. Prüfe außerdem auf Crash-Loops in systemd oder Kubernetes und auf OOM-Kills in dmesg.
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 502 Bad GatewaySo sendest du ihn
| Node.js / Express | res.status(502).end() |
|---|---|
| Python / Flask | return '', 502 |
| nginx | return 502; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/