502 Bad Gateway: Bedeutung und so beheben Sie den Fehler

Kernaussage

Ein 502 Bad Gateway bedeutet: Der Server, den Sie erreicht haben, ist ein Gateway oder Proxy (nginx, Cloudflare, ein Load Balancer) und hat vom Anwendungsserver dahinter eine ungültige Antwort bekommen. Als Besucher warten Sie eine Minute, laden neu und prüfen, ob die Seite für alle down ist. Als Betreiber zeigt das nginx-Fehlerlog meist in einer Zeile, welcher dieser Fälle eingetreten ist: Die App läuft nicht, proxy_pass zeigt auf den falschen Port oder Socket, die App ist mitten in der Anfrage abgestürzt, oder die Response-Header waren zu groß für den Proxy-Puffer.

Jetzt prüfen

nginx-Fehlerseite 502 Bad Gateway neben den fünf Prüfungen, die die meisten 502-Fehler beheben
nginx-Fehlerseite 502 Bad Gateway neben den fünf Prüfungen, die die meisten 502-Fehler beheben
Jetzt lesen
  1. Was ist ein 502-Bad-Gateway-Fehler?
  2. Die vielen Gesichter eines 502-Fehlers
  3. 502 vs. 500 vs. 503 vs. 504: Was ist der Unterschied?
  4. Was verursacht einen 502 Bad Gateway?
  5. So beheben Sie einen 502-Fehler als Besucher
  6. So beheben Sie einen 502 Bad Gateway auf Ihrem Server
  7. 1. Das Fehlerlog des Proxys lesen
  8. 2. Prüfen, ob die Upstream-App läuft
  9. 3. Sicherstellen, dass proxy_pass auf den richtigen Port oder Socket zeigt
  10. 4. Ein echtes Beispiel: Wie dnsrobot.net einen 502 auslieferte
  11. Node.js hinter einem Load Balancer: Sporadische 502-Fehler
  12. 502 Bad Gateway bei Cloudflare
  13. Schadet ein 502-Fehler der SEO?
  14. Häufig gestellte Fragen

Was ist ein 502-Bad-Gateway-Fehler?

502 Bad Gateway ist ein HTTP-Statuscode, der bedeutet: Der Server, der Ihnen antwortet, arbeitet als Gateway oder Proxy und hat vom Server dahinter eine ungültige Antwort erhalten. Der HTTP-Standard (RFC 9110, Abschnitt 15.6.3) definiert ihn genau so: Der Server hat, „während er als Gateway oder Proxy agierte, eine ungültige Antwort von einem eingehenden Server erhalten, auf den er beim Versuch, die Anfrage zu erfüllen, zugegriffen hat“.

Die meisten modernen Websites haben mindestens zwei Schichten. Ein Frontserver wie nginx, Apache, Cloudflare oder ein Cloud-Load-Balancer nimmt Ihre Verbindung an und reicht die Anfrage an eine Upstream-Anwendung weiter, etwa PHP-FPM, eine Node.js-App, Pythons Gunicorn oder einen Container. Ist dieser Upstream down, stürzt er ab oder antwortet er mit etwas, das der Proxy nicht verwenden kann, hat der Proxy Ihnen nichts zu liefern – also gibt er 502 zurück.

Der entscheidende Punkt: Das Gateway selbst funktioniert. Es hat Ihre Anfrage empfangen und geantwortet. Der Fehler liegt einen Schritt weiter hinten.

502 für alle oder nur für Sie? Jetzt prüfen

Die vielen Gesichter eines 502-Fehlers

Der Statuscode ist überall derselbe, aber welche Seite Sie sehen, hängt davon ab, welcher Proxy sie erzeugt hat:

Woher er kommtWas auf der Seite steht
nginx502 Bad Gateway, darunter nginx (und manchmal eine Versionsnummer)
Apache (mod_proxy)Proxy Error. The proxy server received an invalid response from an upstream server.
Cloudflare (Ihr Origin ist ausgefallen)Error 502 Bad gateway, mit Statusfeldern für Browser / Cloudflare / Host
Cloudflare (eigener Fehler)Eine schlichte Seite mit 502 Bad Gateway, darunter „cloudflare“
Microsoft IIS (ARR / ASP.NET Core)HTTP Error 502.3 - Bad Gateway oder HTTP Error 502.5 - Process Failure
Google-Dienste502. That's an error. The server encountered a temporary error…
Browser / AppsHTTP Error 502, 502 Proxy Error, Bad Gateway: The proxy server received an invalid response

Egal welche Variante Sie sehen: Der Name des Proxys in der Fußzeile ist ein nützlicher Hinweis – er verrät dem Betreiber, welche Schicht er untersuchen muss.

502 vs. 500 vs. 503 vs. 504: Was ist der Unterschied?

Alle 5xx-Codes bedeuten „Serverproblem“, aber jeder zeigt auf eine andere Schicht:

CodeNameBedeutungTypische Ursache
500Internal Server ErrorDie Anwendung selbst ist beim Verarbeiten der Anfrage gescheitertProgrammfehler, PHP Fatal Error, fehlerhafte Konfiguration
502Bad GatewayDer Proxy hat vom Upstream eine ungültige Antwort bekommen – oder keine, die er verwenden konnteApp down oder abgestürzt, falscher Port oder Socket, zu große Header
503Service UnavailableDer Server kann Anfragen vorübergehend nicht verarbeitenÜberlastung, Wartungsmodus, Rate-Limits
504Gateway TimeoutDer Proxy hat auf den Upstream gewartet und aufgegebenLangsame Datenbankabfrage, lang laufendes Skript, zu niedriges Timeout

Eine schnelle Faustregel: 502 = der Upstream hat die Verbindung verweigert, aufgelegt oder fehlerhaft geantwortet, 504 = der Upstream hat nicht rechtzeitig geantwortet. Unsere Anleitungen zu den verwandten Codes gehen ins Detail: 500 Internal Server Error, 503 Service Unavailable und 504 Gateway Timeout.

Was verursacht einen 502 Bad Gateway?

  • Die Upstream-App läuft nicht. PHP-FPM, Node, Gunicorn oder der Container ist abgestürzt, nach einem Deployment nicht gestartet oder startet gerade neu.
  • Der Proxy zeigt an die falsche Stelle. proxy_pass oder fastcgi_pass nutzt den falschen Port, nach einem Upgrade einen alten PHP-Socket-Pfad oder localhost innerhalb eines Docker-Containers.
  • Die App stürzt bei bestimmten Anfragen ab. Eine Seite löst einen Out-of-Memory-Kill oder eine unbehandelte Exception aus, und die Verbindung schließt sich vor der Antwort.
  • Alle Worker sind belegt. PHP-FPM hat pm.max_children erreicht, neue Anfragen warten in der Warteschlange des Sockets. Die meisten laufen danach als 504 in ein Timeout; ist die Warteschlange voll, protokolliert nginx (11: Resource temporarily unavailable) und liefert 502.
  • Die Response-Header sind zu groß. Große Cookies oder umfangreiche Security-Header sprengen die proxy_buffer_size von nginx.
  • Keep-Alive-Konflikt hinter einem Load Balancer. Die App schließt Leerlauf-Verbindungen früher, als der Load Balancer erwartet, sodass er eine Anfrage in eine Verbindung schickt, die gerade geschlossen wird.
  • Der Proxy erreicht den Upstream nach einer Netzwerkänderung nicht mehr. Eine Firewall, die den Proxy abweist, oder ein Upstream mit neuer IP führt zu 502 (Connection refused, No route to host). Eine Firewall, die Pakete stillschweigend verwirft, führt stattdessen zu 504, und hinter Cloudflare erscheinen diese Fälle als 521 oder 522.

So beheben Sie einen 502-Fehler als Besucher

Den Server eines anderen können Sie nicht reparieren, aber diese Schritte bestätigen, dass das Problem wirklich dort liegt, und beseitigen die seltenen lokalen Ursachen:

  • Warten Sie 30 bis 60 Sekunden und laden Sie neu (Strg + R, auf dem Mac Cmd + R). Viele 502-Fehler dauern nur so lange wie ein Deployment oder ein Neustart.
  • Prüfen Sie, ob die Seite für alle down ist. Der Website-Down-Checker von DNS Robot ruft die Seite von 11 Standorten aus auf, und der HTTP-Header-Checker zeigt den genauen Statuscode, den unser Server erhält. Sehen auch sie einen 502, liegt es an der Seite, nicht an Ihnen.
  • Laden Sie hart neu mit Strg + Umschalt + R (Mac: Cmd + Umschalt + R), falls Ihnen im seltenen Fall eine zwischengespeicherte Fehlerseite angezeigt wird.
  • Leeren Sie Ihren DNS-Cache, wenn die Seite kürzlich den Hoster gewechselt hat, damit Sie den neuen Server erreichen. Hier steht, wie Sie den DNS-Cache leeren – für jedes System.
  • Schalten Sie VPNs und Proxys aus. Ihr eigener Proxy kann das „Gateway“ sein, das versagt, besonders in Firmennetzen.
  • Probieren Sie einen anderen Browser oder Ihr Smartphone über mobile Daten. Funktioniert es dort, löschen Sie die Cookies dieser Seite.

So beheben Sie einen 502 Bad Gateway auf Ihrem Server

Serverseitig gehört ein 502 zu den leichter zu behebenden Fehlern, weil der Proxy meist protokolliert, was schiefgelaufen ist (Ausnahmen sind eine Keep-Alive-Race-Condition beim Load Balancer und Cloudflares eigene 502). Arbeiten Sie diese drei Prüfungen der Reihe nach ab; der vierte Teil ist ein echtes Beispiel.

1. Das Fehlerlog des Proxys lesen

Reproduzieren Sie den 502 und lesen Sie dann die letzten 50 Zeilen des Fehlerlogs des Proxys (Befehle unter der Tabelle). Jede dieser nginx-Meldungen führt zu einer eigenen Lösung:

Log-MeldungBedeutung
connect() failed (111: Connection refused) while connecting to upstreamAuf dem Upstream-Port lauscht nichts: Die App ist down oder läuft auf einem anderen Port
connect() to unix:/run/php/php8.x-fpm.sock failed (2: No such file or directory)Der PHP-FPM-Socket existiert nicht, meist nach einem Wechsel der PHP-Version
connect() to unix:… failed (13: Permission denied)nginx kann nicht auf den Socket zugreifen: listen.owner / listen.group korrigieren
connect() to unix:… failed (11: Resource temporarily unavailable)Die Warteschlange des PHP-FPM-Sockets ist voll: Alle Worker sind belegt (pm.max_children)
upstream prematurely closed connection while reading response headerDie App ist abgestürzt oder hat die Verbindung mitten in der Anfrage geschlossen
upstream sent too big header while reading response header from upstreamDie Response-Header sind größer als proxy_buffer_size (bei PHP-FPM: fastcgi_buffer_size)
no live upstreams while connecting to upstreamJeder Server im upstream-Block ist als ausgefallen markiert
bash
# nginx
sudo tail -n 50 /var/log/nginx/error.log

# Apache
sudo tail -n 50 /var/log/apache2/error.log    # Debian/Ubuntu
sudo tail -n 50 /var/log/httpd/error_log      # RHEL/Alma/Rocky

2. Prüfen, ob die Upstream-App läuft

bash
# PHP-FPM (Version anpassen)
sudo systemctl status php8.3-fpm
sudo journalctl -u php8.3-fpm -n 50

# Node.js unter PM2
pm2 status
pm2 logs --lines 50

# Docker
docker ps -a          # nach Containern suchen, die ständig neu starten
docker logs --tail 50 <container>

# Wurde sie wegen zu hohen Speicherverbrauchs beendet?
sudo dmesg -T | grep -i "killed process"

Ist der Dienst gestoppt, starten Sie ihn und finden Sie heraus, warum er gestoppt wurde: ein fehlgeschlagenes Deployment, ein Syntaxfehler im neuen Release oder der Out-of-Memory-Killer. Im Log von PHP-FPM bedeutet server reached pm.max_children setting, dass alle Worker belegt waren. Erhöhen Sie pm.max_children nur, wenn der Server genug RAM dafür hat – ansonsten finden Sie die langsamen Anfragen, die die Worker blockieren.

3. Sicherstellen, dass proxy_pass auf den richtigen Port oder Socket zeigt

Vergleichen Sie, womit nginx sprechen soll, mit dem, was tatsächlich lauscht:

bash
# Wohin leitet nginx weiter?
sudo nginx -T 2>/dev/null | grep -n "proxy_pass\|fastcgi_pass"

# Was lauscht tatsächlich?
sudo ss -tlnp            # TCP-Ports und ihre Prozesse
ls -l /run/php/          # PHP-FPM-Socket-Dateien

Zwei klassische Unstimmigkeiten: Nach einem PHP-Upgrade heißt der Socket php8.3-fpm.sock, während nginx noch auf php8.1-fpm.sock zeigt; und innerhalb von Docker zeigt proxy_pass http://localhost:3000 auf den nginx-Container selbst statt auf die App – nutzen Sie dort den Namen des Compose-Service (http://app:3000).

4. Ein echtes Beispiel: Wie dnsrobot.net einen 502 auslieferte

Das ist uns am 30. September 2026 passiert. Nachdem wir einen Schwung neuer Blogartikel veröffentlicht hatten, lieferte genau einer davon über nginx 1.24 502 Bad Gateway, während jede andere Seite funktionierte. Die Next.js-App hinter nginx lieferte dieselbe Seite mit 200 OK, als wir sie direkt auf Port 3000 abriefen. Die App war also in Ordnung, und das Gateway scheiterte.

Das nginx-Fehlerlog hatte die Antwort in einer Zeile: upstream sent too big header while reading response header from upstream. Die Response-Header dieser Seite kamen auf 4.087 Byte, überwiegend ein langer Content-Security-Policy-Header plus Preload-Link-Header. nginx liest den ersten Teil der Antwort einschließlich aller Header in einen Puffer, dessen Größe proxy_buffer_size festlegt – standardmäßig eine Speicherseite: 4 KB auf unserem Server. Damit blieben nur 9 Byte Luft, und der komplette Header-Block samt Statuszeile lief über.

Die Lösung waren drei Zeilen im location-Block, der an die App weiterleitet; nach nginx -t und einem Reload lieferte die Seite 200:

nginx
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_buffer_size 16k;        # Platz für große Header (vorher der 4k-Standard)
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
}

Die Lehre daraus: Liefern nur einige Seiten einen 502, während der Rest der Website funktioniert, suchen Sie nach einem Größenlimit, etwa großen Headern oder Set-Cookie-Werten auf diesen Seiten, bevor Sie die App verdächtigen.

Node.js hinter einem Load Balancer: Sporadische 502-Fehler

Betreiben Sie Node.js hinter einem AWS Application Load Balancer oder einem ähnlichen Balancer und sehen gelegentlich 502-Fehler ohne Einträge in Ihren App-Logs, prüfen Sie die Keep-Alive-Timeouts. Der HTTP-Server von Node schließt Leerlauf-Keep-Alive-Verbindungen standardmäßig nach 5 Sekunden (server.keepAliveTimeout, in Node.js 26 und früher; Node 24.6 und 22.19 haben zusätzlich einen keepAliveTimeoutBuffer von 1 Sekunde eingeführt, und das nächste Major-Release erhöht den Standardwert auf 65 Sekunden), während ein AWS ALB Leerlauf-Verbindungen 60 Sekunden offen hält. Manchmal verwendet der Balancer eine Verbindung genau in dem Moment wieder, in dem Node sie schließt, und diese Anfrage kommt als 502 zurück.

Die Lösung: Das Timeout der App muss länger sein als das des Balancers:

javascript
const server = app.listen(3000)
// Muss länger sein als das Leerlauf-Timeout des Load Balancers (ALB-Standard: 60s)
server.keepAliveTimeout = 65_000
server.headersTimeout = 66_000 // nur vor Node 18 nötig; danach unschädlich

502 Bad Gateway bei Cloudflare

Hinter Cloudflare schauen Sie zuerst, wer die Fehlerseite erzeugt hat (Cloudflares 502/504-Leitfaden):

  • Seite im Cloudflare-Design (Browser ✓ / Cloudflare ✓ / Host ✗): Ihr Origin-Server selbst hat Cloudflare einen 502 oder 504 geliefert. Beheben Sie das am Origin mit den serverseitigen Schritten oben. Kann Cloudflare den Origin gar nicht erreichen, erscheint 521 oder 522, nicht 502.
  • Eine schlichte Seite mit „502 Bad Gateway“ und darunter „cloudflare“: Sie stammt von Cloudflare selbst. Cloudflares Dokumentation nennt zwei Ursachen: Ihr Origin sendet fehlerhaften gzip-Inhalt oder gzip-Inhalt ohne aktualisierte Content-Length (zum Testen die Kompression am Origin ausschalten), und eine plötzliche Lastspitze an einem Cloudflare-Rechenzentrum, die von selbst vergeht.
  • Eine Seite, die nginx oder Apache nennt: Meist hat die Anfrage Ihren Server ohne Umweg über Cloudflare erreicht, weil der DNS-Eintrag nicht geproxyt ist (graue Wolke) oder Sie direkt den Origin ansehen (es sei denn, eine Cache Rule aktiviert „Origin error page pass-through“).
  • Hoster gewechselt? Aktualisieren Sie den A-Record des Origins im DNS von Cloudflare (eine falsche Origin-IP zeigt sich meist als 521, 522 oder 523). Ein DNS-Lookup zeigt den Origin nur bei Einträgen mit grauer Wolke (nur DNS); geproxyte Einträge antworten mit Cloudflares eigenen IPs.

Schadet ein 502-Fehler der SEO?

Ein kurzer Ausfall nicht. Laut Googles Dokumentation führen 5xx-Serverfehler dazu, dass die Crawler das Crawling vorübergehend verlangsamen. Bereits indexierte Seiten bleiben zunächst im Index, aber wenn die Fehler bestehen bleiben, entfernt Google diese URLs irgendwann.

Ein 502, der während eines Deployments ein paar Minuten dauert, ist also harmlos. Ein 502 auf wichtigen Seiten, der tagelang anhält oder wochenlang sporadisch auftritt, kann das Crawling reduzieren und Rankings kosten. Überwachen Sie Ihre wichtigsten URLs und prüfen Sie nach jedem Ausfall den Bericht „Crawling-Statistiken“ in der Search Console.

Liefert die Seite für alle einen 502?

Der HTTP-Header-Checker von DNS Robot ruft jede URL von unseren Servern ab und zeigt den genauen Statuscode, die Server-Software und jeden Response-Header. So bestätigen Sie einen 502 am schnellsten.

Quellen

  1. RFC 9110 §15.6.3: 502 Bad Gateway, IETF
  2. ngx_http_proxy_module (proxy_buffer_size), nginx
  3. Error 502 bad gateway or error 504 gateway timeout, Cloudflare
  4. HTTP status codes and Google's crawlers, Google

Häufig gestellte Fragen

Was bedeutet 502 Bad Gateway?

Es bedeutet, dass der Server, den Sie erreicht haben, ein Gateway oder Proxy ist – etwa nginx, Cloudflare oder ein Load Balancer – und vom Anwendungsserver dahinter eine ungültige Antwort bekommen hat. Der Proxy funktioniert; die App dahinter ist down, abgestürzt, nicht erreichbar oder hat eine Antwort gesendet, die der Proxy nicht verwenden konnte.

Bin ich an einem 502 Bad Gateway schuld?

Fast nie. Ein 502 ist ein serverseitiger Fehler. Laden Sie nach einer Minute neu und prüfen Sie mit einem Website-Down-Checker, ob die Seite für alle down ist. Die wenigen lokalen Ursachen sind Ihr eigenes VPN oder Ihr Proxy, ein veralteter DNS-Eintrag, nachdem die Seite den Hoster gewechselt hat, oder die Cookies dieser Seite; ein anderer Browser oder mobile Daten schließen sie aus.

Wie lange dauert ein 502 Bad Gateway?

Eine feste Dauer gibt es nicht. Ein 502 durch ein Deployment oder einen Neustart verschwindet meist nach Sekunden bis wenigen Minuten. Dauert er länger, ist die Upstream-App abgestürzt oder falsch konfiguriert, und sie bleibt down, bis der Betreiber das Problem behebt.

Was bedeutet 502 Bad Gateway nginx?

nginx ist der Proxy, der geantwortet hat, und er konnte von der Anwendung, an die er Anfragen weiterleitet, etwa PHP-FPM oder eine Node.js-App, keine gültige Antwort bekommen. Den genauen Grund finden Sie im Fehlerlog von nginx, meist unter /var/log/nginx/error.log.

Was ist der Unterschied zwischen 502 und 504?

502 Bad Gateway bedeutet, dass der Proxy den Upstream-Server nicht erreichen konnte oder der Upstream die Verbindung geschlossen oder eine ungültige Antwort geliefert hat. 504 Gateway Timeout bedeutet, dass der Upstream nicht innerhalb des Zeitlimits des Proxys geantwortet hat. 502 deutet auf einen Absturz oder eine Fehlkonfiguration hin, 504 auf Langsamkeit.

Kann ein VPN oder Proxy einen 502-Fehler verursachen?

Ja, wenn Ihr eigenes VPN oder der Firmen-Proxy das Gateway ist, das versagt. Dann erscheint der Fehler auf jeder Seite oder nur bei eingeschaltetem VPN. Trennen Sie die Verbindung und laden Sie neu. Verschwindet der 502, liegt das Problem an Ihrem VPN oder Proxy, nicht an der Website.

Wie behebe ich einen 502 Bad Gateway bei Cloudflare?

Schauen Sie sich die Fehlerseite an. Eine Seite im Cloudflare-Design mit fehlerhaftem Host bedeutet, dass Ihr Origin-Server selbst den 502 geliefert hat, also nutzen Sie die serverseitigen Schritte: Fehlerlog, läuft die App, proxy_pass. Eine schlichte Seite mit „502 Bad Gateway“ und darunter „cloudflare“ stammt von Cloudflare selbst: Dessen Dokumentation nennt fehlerhaftes gzip vom Origin und kurze Verschiebungen des Traffics zwischen Rechenzentren.

Warum bekomme ich nur auf einer Seite meiner Website einen 502?

Funktioniert der Großteil einer Website und nur eine Seite liefert 502, schauen Sie sich an, was diese Seite besonders macht: Response-Header oder Set-Cookie-Werte, die den Proxy-Puffer sprengen, oder ein Codepfad, der die App abstürzen lässt oder ihr den Speicher ausgehen lässt (eine sehr langsame Abfrage führt zu 504, nicht zu 502). Das Fehlerlog des Proxys nennt die Ursache, zum Beispiel upstream sent too big header.

Wirkt sich ein 502-Fehler auf die SEO aus?

Kurze 502-Ausfälle nicht. Google verlangsamt das Crawling, wenn es 5xx-Fehler sieht, und behält indexierte Seiten eine Weile im Index. Dauerhafte 502-Fehler auf wichtigen Seiten können dazu führen, dass Google diese URLs aus dem Index entfernt – behebe anhaltende Fehler also schnell.

Über den Autor

Shaik Vahid

Gründer von DNS Robot. Vahid hat jahrelang im Webhosting-Support Domains, DNS-Einträge, SSL-Zertifikate und E-Mail-Zustellung für Kunden in Ordnung gebracht. Er entwickelt die Tools von DNS Robot und schreibt diese Anleitungen über die Fehler, die Menschen wirklich sehen.

HTTP-Header-Checker

HTTP-Antwort-Header und Sicherheits-Header-Bewertung analysieren