HTTPQUERY
Deutsch

502 Bad Gateway

Verwendung

Der Statuscode 502 Bad Gateway bedeutet, dass der Server als Proxy oder Gateway für einen Upstream-Server fungiert. Nach dem Weiterleiten der HTTP-Anfrage hat der Upstream-Server eine ungültige Antwort geliefert. Wie lange die Behebung dieses Problems dauert, ist nicht vorhersehbar.

Gibt der Ursprungsserver einen HTTP-Fehlerstatuscode zurück, wird erwartet, dass derselbe Statuscode samt zugehöriger Informationen an den Client weitergeleitet wird, damit das Problem möglichst genau beschrieben ist.

Erhält der Proxy überhaupt keine Antwort vom Upstream-Server, ist der Statuscode 504 Gateway Timeout passender.

Hinweis

502 Bad Gateway bedeutet, dass der Proxy eine ungültige Antwort vom Backend erhalten hat. Das Backend hat geantwortet, aber die Antwort war fehlerhaft oder unerwartet. 504 Gateway Timeout bedeutet, dass das Backend innerhalb der Zeitüberschreitung überhaupt nicht geantwortet hat. 502 deutet auf einen Absturz des Backends oder einen Protokollfehler hin, während 504 auf ein langsames oder nicht erreichbares Backend hinweist. Keiner der beiden Codes zeigt an, dass der Client etwas falsch gemacht hat.

SEO-Auswirkung

Googlebot wertet 5xx-Fehler als Signal, die Crawling-Rate für die gesamte Website vorübergehend zu senken. Bereits indexierte URLs bleiben zunächst erhalten, aber eine längere Ausfallzeit führt dazu, dass Google sie aus dem Index entfernt. Inhalte, die mit einer 502-Antwort ausgeliefert werden, werden ignoriert. Google behandelt 500, 502 und 503 in dieser Hinsicht identisch. Ein 5xx-Fehler bei der Datei robots.txt ist weitaus gravierender, selbst wenn jede andere Seite der Website 200 zurückgibt. Google stoppt das Crawling für bis zu 12 Stunden und greift anschließend bis zu 30 Tage lang auf eine zwischengespeicherte Kopie zurück. Besteht der Fehler fort, deindexiert Google die Website vollständig. Auch Bingbot wertet 5xx-Antworten als Crawling-Fehler. Anhaltende 5xx-Fehler verhindern die Indexierung in Bing.

Beispiel

Der Client fordert eine Ressource an, und der Server antwortet mit dem Statuscode 502 Bad Gateway, weil der Upstream-Server eine ungültige Antwort geliefert hat.

Anfrage

GET /news HTTP/1.1
Host: example.com

Antwort

HTTP/1.1 502 Bad Gateway
Content-Type: text/html; charset=UTF-8
Content-Length: 134

<html>
  <head>
    <title>Bad Gateway</title>
  </head>
  <body>
    <p>The server is unreachable at this time.</p>
  </body>
</html>

Behebung

Prüfen Sie zuerst /var/log/nginx/error.log oder das entsprechende Fehlerprotokoll des Proxys. Die Protokollmeldung benennt die Art des Upstream-Fehlers: abgelehnte Verbindung, vorzeitig geschlossene Verbindung oder ungültiger Header.

Häufige Grundursachen und ihre Behebung:

Prüfen Sie bei Apache-Reverse-Proxy-Setups die Direktiven ProxyPass/ProxyPassReverse und stellen Sie sicher, dass mod_proxy und mod_proxy_http aktiviert sind. Führen Sie apachectl configtest aus, bevor Sie neu starten.

Führen Sie nach dem Anwenden der Korrekturen nginx -t aus, um die Konfiguration zu prüfen, und laden Sie sie anschließend neu.

Code-Referenzen

.NET

HttpStatusCode.BadGateway

Rust

http::StatusCode::BAD_GATEWAY

Rails

:bad_gateway

Go

http.StatusBadGateway

Symfony

Response::HTTP_BAD_GATEWAY

Python3.5+

http.HTTPStatus.BAD_GATEWAY

Java

java.net.HttpURLConnection.HTTP_BAD_GATEWAY

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_BAD_GATEWAY

Angular

@angular/common/http/HttpStatusCode.BadGateway