Ein 504-Gateway-Timeout-Fehler tritt auf, wenn ein Server, der als Gateway oder Proxy fungiert, nicht rechtzeitig eine Antwort von einem anderen Server erhält. Dies geschieht häufig, wenn die Backend-Anwendung einer Website langsam oder überlastet ist oder Verbindungsprobleme hat.
Wenn Sie eine Website besuchen, versuchen Sie, die Seite nach kurzer Zeit neu zu laden. Wenn Sie die Website verwalten, prüfen Sie zunächst Ihre Server- und Anwendungsprotokolle, um festzustellen, wo die Verzögerung auftritt.
Hier sind sieben praktische Möglichkeiten, den Fehler zu untersuchen.
Was verursacht einen 504-Gateway-Timeout-Fehler?
Viele Websites nutzen mehrere Server oder Dienste, um Anfragen zu verarbeiten.
Ein Browser kann beispielsweise eine Verbindung zu Nginx oder einem CDN herstellen, das die Anfrage anschließend an einen Anwendungsserver weiterleitet.
Wenn diese Anwendung zu lange für eine Antwort benötigt, gibt das Gateway möglicherweise statt der angeforderten Seite einen 504-Fehler zurück.
Häufige Ursachen sind:
- Überlastete oder nicht reagierende Anwendungsserver.
- Langsame Datenbankabfragen oder Anfragen an externe APIs.
- Zu wenig CPU-Leistung, RAM oder Anwendungs-Worker.
- Netzwerkprobleme zwischen Gateway und Backend.
- Timeout-Grenzwerte des Proxys oder der Anwendung.
- Fehlerhaft konfigurierte CDN- oder Hosting-Infrastruktur.
Ein 504-Fehler ist in der Regel ein serverseitiges Problem. Verbindungsabhängige Probleme können jedoch manchmal einzelne Besucher betreffen.

1. Laden Sie die Website neu und prüfen Sie ihre Erreichbarkeit
Wenn Sie lediglich eine Website besuchen, warten Sie kurz und laden Sie die Seite neu.
Eine vorübergehende Serverüberlastung oder eine unterbrochene Backend-Anfrage kann sich ohne Eingreifen beheben.
Sie können auch einen anderen Browser oder ein anderes Netzwerk ausprobieren, um festzustellen, ob das Problem nur Ihre Verbindung betrifft.
Wenn der Fehler bei allen auftritt, muss in der Regel der Websitebetreiber oder Hosting-Anbieter die Ursache untersuchen.
Vermeiden Sie es, Zahlungen, Bestellungen oder Formulare wiederholt abzusenden. Ein Vorgang im Backend könnte abgeschlossen worden sein, auch wenn das Gateway vor der Rückgabe der Antwort eine Zeitüberschreitung gemeldet hat.
2. Prüfen Sie Server- und Anwendungsprotokolle
Wenn Sie den Server verwalten, sind Protokolldateien der beste Ausgangspunkt.
Prüfen Sie bei Nginx das Fehlerprotokoll:
sudo tail -n 50 /var/log/nginx/error.log
Suchen Sie nach Meldungen wie:
upstream timed out (110: Connection timed out)
Dies zeigt an, dass Nginx zu lange auf einen Upstream-Vorgang gewartet hat.
Prüfen Sie anschließend die Anwendungsprotokolle, um herauszufinden, warum das Backend langsam geantwortet hat.
Sie können auch einen von systemd verwalteten Dienst überprüfen:
sudo journalctl -u myapp -n 50
Ersetzen Sie myapp durch den tatsächlichen Namen Ihres Dienstes.
Wenn Sie noch nie SSH verwendet haben, erklärt unser SSH-Befehlsleitfaden für Einsteiger, wie Sie eine Verbindung zu einem Linux-Server herstellen.
3. Prüfen Sie die CPU-, RAM- und Festplattenauslastung
Ein stark ausgelasteter Server kann Schwierigkeiten haben, Anfragen innerhalb der Timeout-Frist des Gateways zu verarbeiten.
Prüfen Sie den Arbeitsspeicher:
free -h
Prüfen Sie den freien Speicherplatz:
df -h
Überwachen Sie die Prozesse:
top
Achten Sie auf dauerhaft hohe Ressourcenauslastung, erschöpften Arbeitsspeicher, volle Dateisysteme oder ungewöhnlich stark ausgelastete Prozesse.
Diese Ergebnisse belegen nicht automatisch, warum die Anfrage eine Zeitüberschreitung verursacht hat, können aber helfen, Leistungsengpässe zu erkennen.
Unser Leitfaden zu wichtigen Linux-Befehlen für die Serververwaltung behandelt weitere Befehle zur Überprüfung von Prozessen, Diensten und Protokollen.
4. Untersuchen Sie Nginx- und Upstream-Timeouts
Wenn Nginx als Reverse-Proxy fungiert, prüfen Sie, ob die Upstream-Anwendung innerhalb der konfigurierten Timeout-Grenzwerte antwortet.
Bei HTTP-Backends kann die Konfiguration Folgendes enthalten:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_read_timeout 60s;
}
Die Einstellung proxy_read_timeout legt fest, wie lange Nginx zwischen aufeinanderfolgenden Lesevorgängen vom Backend wartet, nicht die Gesamtdauer der Anfrage.
Bevor Sie den Wert erhöhen, testen Sie das Backend direkt:
curl --max-time 15 -i http://127.0.0.1:3000/
Ersetzen Sie die Adresse durch den tatsächlichen Endpunkt Ihrer Anwendung. Manche Anwendungsrouten erfordern möglicherweise eine Authentifizierung oder geben eine andere gültige Antwort als HTTP 200 zurück.
Wenn die Anwendung selbst langsam ist, kaschiert eine Erhöhung des Nginx-Timeouts möglicherweise nur das zugrunde liegende Problem.
Wenn ein längerer Timeout tatsächlich gerechtfertigt ist, überprüfen Sie auch die Timeout-Einstellungen der Anwendung. PHP-FPM- und FastCGI-basierte Anwendungen verwenden andere Nginx-Direktiven als HTTP-Proxy-Backends.
Prüfen Sie nach Konfigurationsänderungen die Nginx-Konfiguration, bevor Sie sie neu laden:
sudo nginx -t
sudo systemctl reload nginx
Laden Sie sie nur neu, wenn der Konfigurationstest erfolgreich ist.
5. Prüfen Sie Cloudflare oder Ihr CDN
Wenn Ihre Website Cloudflare oder ein anderes Content Delivery Network nutzt, stellen Sie fest, ob die Zeitüberschreitung beim CDN oder bei Ihrem Ursprungsserver auftritt.
Prüfen Sie die Fehlerinformationen Ihres CDN und vergleichen Sie sie mit den Protokollen Ihres Ursprungsservers.
Ein 504-Fehler kann von einem Upstream-Dienst hinter Ihrem Ursprungsserver oder von einer anderen Ebene auf dem Weg der Anfrage stammen.
Cloudflare hat eigene Grenzwerte für Verbindungs- und Antwortzeiten. Eine Erhöhung einer Nginx-Einstellung setzt daher nicht unbedingt einen vom CDN vorgegebenen Grenzwert außer Kraft.
Deaktivieren Sie keine Sicherheits- oder Caching-Funktionen, ohne die Ursache der Zeitüberschreitung zu ermitteln.
6. Untersuchen Sie langsame Datenbankabfragen und externe APIs
Manchmal funktioniert der Webserver einwandfrei, aber die Anwendung wartet auf einen anderen Dienst.
Häufige Beispiele sind:
- Eine Datenbankabfrage, die zu lange dauert.
- Eine externe API, die langsam antwortet.
- Ausgelastete Anwendungs-Worker-Pools.
- Hintergrundaufgaben, die um Ressourcen konkurrieren.
- Datenbanksperren, die Anfragen verzögern.
Prüfen Sie Anwendungsprotokolle, Protokolle langsamer Abfragen und Dienstmetriken, um die Verzögerung zu lokalisieren.
Wenn eine Datenbankabfrage die Ursache ist, untersuchen Sie die Indizierung, die Abfrageausführungspläne und die Nutzung der Datenbankverbindungen.
Konfigurieren Sie für Aufrufe externer APIs angemessene Timeouts und eine geeignete Fehlerbehandlung. Länger laufende Aufgaben lassen sich möglicherweise besser asynchron verarbeiten, sofern die Anwendung dies unterstützt.
7. Kontaktieren Sie Ihren Hosting-Anbieter
Wenn Sie den 504-Gateway-Timeout-Fehler nicht beheben können, wenden Sie sich mit den gesammelten Informationen an Ihren Hosting-Anbieter.
Nennen Sie die betroffene Domain, den Zeitpunkt, zu dem das Problem erstmals aufgetreten ist, ob es nur zeitweise auftritt, und alle relevanten Protokollmeldungen.
Erwähnen Sie kürzlich vorgenommene Änderungen an Ihrer Anwendung, Datenbank, Ihrem CDN oder Ihrer Reverse-Proxy-Konfiguration.
Ein Hosting-Anbieter kann helfen, Ressourcenbeschränkungen und Infrastrukturprobleme außerhalb Ihres Verwaltungszugriffs zu untersuchen.
502- und 504-Gateway-Fehler: Was ist der Unterschied?
Diese Fehler hängen zusammen, weisen aber auf unterschiedliche Upstream-Probleme hin.
| Fehler | Bedeutung |
|---|---|
| 502 Bad Gateway | Ein Gateway hat eine ungültige Antwort von einem Upstream-Server erhalten |
| 504 Gateway Timeout | Ein Gateway hat die erforderliche Antwort von einem Upstream-Server nicht rechtzeitig erhalten |
Wenn eine Anwendung beispielsweise unerwartet eine Verbindung schließt, kann dies zu einem 502-Fehler führen. Benötigt sie dagegen zu lange für eine Antwort, kann ein 504-Fehler auftreten.
Wenn Sie speziell eine ungültige Upstream-Antwort untersuchen, lesen Sie unseren Leitfaden dazu, wie Sie den Fehler 502 Bad Gateway in Nginx beheben.
So verhindern Sie 504-Gateway-Timeout-Fehler
Nicht jede Zeitüberschreitung lässt sich verhindern, aber eine gute Verwaltung der Infrastruktur hilft, ihre Häufigkeit zu verringern.
- Überwachen Sie die Antwortzeiten der Anwendung und die Ressourcenauslastung.
- Untersuchen Sie langsame Datenbankabfragen.
- Nutzen Sie geeignetes Caching für häufig angeforderte Inhalte.
- Konfigurieren Sie sinnvolle Timeouts für Upstream-Dienste und Anwendungen.
- Überwachen Sie Backend-Dienste und die Verfügbarkeit von Workern.
- Testen Sie größere Konfigurationsänderungen, bevor Sie sie bereitstellen.
Eine Erhöhung der Timeout-Grenzwerte sollte eine wohlüberlegte Entscheidung sein und nicht der erste Schritt bei der Fehlersuche.
Häufig gestellte Fragen
Ja. HTTP 504 ist ein serverseitiger Statuscode, der anzeigt, dass ein Gateway oder Proxy nicht rechtzeitig eine Antwort von einem Upstream-Server erhalten hat.
In der Regel nicht. Der Browser-Cache behebt keinen überlasteten oder nicht reagierenden Backend-Server. Ein Test mit einem anderen Browser oder einer anderen Verbindung kann jedoch helfen, lokale Probleme auszuschließen.
Das ist möglich. Eine vorübergehende Überlastung oder eine langsame Backend-Anfrage kann sich schnell erledigen. Wiederkehrende Zeitüberschreitungen weisen dagegen auf ein Problem hin, das untersucht werden muss.
Ja. Bei WordPress und anderen Anwendungen können 504-Fehler auftreten, wenn Datenbankabfragen, die PHP-Verarbeitung oder Upstream-Dienste zu lange dauern.
Nur wenn die Anwendung tatsächlich mehr Zeit benötigt und die anderen Grenzwerte der Infrastruktur dies zulassen. Ermitteln Sie zuerst, warum sich die Antwort des Backends verzögert.
Fazit
Ein 504-Gateway-Timeout-Fehler bedeutet, dass ein Gateway zu lange auf die Antwort eines Upstream-Servers gewartet hat.
Besucher können prüfen, ob das Problem vorübergehend ist. Administratoren sollten dagegen Protokolle, Serverressourcen, die Anwendungsleistung und Proxy-Einstellungen untersuchen.
Am zuverlässigsten lässt sich der Fehler beheben, indem Sie die Ursache der Verzögerung ermitteln, statt wahllos Timeout-Grenzwerte zu erhöhen oder Dienste neu zu starten.