Ein Proxy hat nicht rechtzeitig eine Antwort erhalten.
Wann du ihn verwendest
Die dahinterliegende App ist zu langsam oder hängt.
Häufige Ursachen und Lösungen
Der Proxy hat es aufgegeben, auf den Upstream zu warten. Typische Ursachen: eine langsame Datenbankabfrage oder ein langsamer externer API-Aufruf, ein blockierter Worker, zu wenige Worker für den Traffic oder eine Firewall, die Pakete stillschweigend verwirft. Timeouts sind geschichtet, und der kürzeste gewinnt: proxy_read_timeout von nginx steht standardmäßig auf 60 Sekunden, AWS ALB trennt nach 60 Sekunden Inaktivität, API Gateway nach 29, und Cloudflare zeigt nach 100 Sekunden seinen eigenen 524.
Finde heraus, wo die Zeit verloren geht: Prüfe die Logs der App auf Anfragedauern, such nach langsamen Abfragen und miss dieselbe Anfrage direkt gegen den Origin, am Proxy vorbei. Höhere Timeouts verdecken das Problem nur; verlagere lange Jobs in einen Background-Worker und gib 202 mit einer Status-URL zurück. Die Arbeit kann nach der 504 trotzdem noch fertig werden, daher kann ein erneuter Versuch bei nicht idempotenten Anfragen sie doppelt ausführen.
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 504 Gateway TimeoutSo sendest du ihn
| Node.js / Express | res.status(504).end() |
|---|---|
| Python / Flask | return '', 504 |
| nginx | return 504; |
So prüfst du ihn
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/