HTTPQUERY
Français

502 Bad Gateway

Utilisation

Le code de statut 502 Bad Gateway signifie que le serveur agit comme mandataire ou passerelle pour un serveur amont. Après avoir transmis la requête HTTP, le serveur amont a renvoyé une réponse invalide. Le délai de résolution de ce problème est imprévisible.

Lorsque le serveur d’origine renvoie un code de statut HTTP d’erreur, on attend que ce même code de statut et les informations associées soient transmis au client pour obtenir la description la plus exacte du problème.

Lorsque le mandataire ne reçoit aucune réponse du serveur amont, un code de statut 504 Gateway Timeout est plus approprié.

Remarque

502 Bad Gateway signifie que le mandataire a reçu une réponse invalide du backend. Le backend a répondu, mais la réponse était mal formée ou inattendue. 504 Gateway Timeout signifie que le backend n’a pas répondu du tout dans le délai imparti. Le 502 indique un plantage du backend ou une erreur de protocole, tandis que le 504 indique un backend lent ou injoignable. Aucun de ces deux codes n’indique que le client a mal agi.

Impact SEO

Googlebot considère les erreurs 5xx comme un signal l’invitant à réduire temporairement la vitesse d’exploration sur tout le site. Les URL précédemment indexées sont d’abord conservées, mais une indisponibilité prolongée conduit Google à les retirer de l’index. Tout contenu renvoyé avec une réponse 502 est ignoré. À cet égard, Google traite 500, 502 et 503 de façon identique. Une erreur 5xx sur le fichier robots.txt est bien plus grave, même si toutes les autres pages du site renvoient 200. Google interrompt l’exploration pendant jusqu’à 12 heures, puis se rabat sur une copie en cache pendant jusqu’à 30 jours. Si l’erreur persiste, Google désindexe entièrement le site. Bingbot considère lui aussi les réponses 5xx comme des échecs d’exploration. Des erreurs 5xx persistantes empêchent l’indexation dans Bing.

Exemple

Le client demande une ressource et le serveur répond avec un code de statut 502 Bad Gateway parce que le serveur amont a renvoyé une réponse invalide.

Requête

GET /news HTTP/1.1
Host: example.com

Réponse

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>

Comment corriger

Consultez d’abord /var/log/nginx/error.log ou le journal d’erreurs équivalent du mandataire. Le message de journal identifie le mode de défaillance du serveur amont : connexion refusée, connexion fermée prématurément, ou en-tête invalide.

Causes racines courantes et leurs correctifs :

Dans les configurations de proxy inverse Apache, vérifiez les directives ProxyPass/ProxyPassReverse et confirmez que mod_proxy et mod_proxy_http sont activés. Exécutez apachectl configtest avant de redémarrer.

Après avoir appliqué les correctifs, exécutez nginx -t pour valider la configuration, puis rechargez.

Références de code

.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