Des erreurs HTTP 502 s'affichent lorsque mon client effectue des requêtes vers un site Web via un Classic Load Balancer. Comment corriger ce problème ?

Les erreurs HTTP 502 (passerelle erronée) peuvent se produire pour plusieurs raisons :

  • Le serveur Web ou les serveurs d'applications backend associés exécutant des instances EC2 renvoient un message qui ne peut pas être analysé par votre Classic Load Balancer.
  • Le serveur Web ou les serveurs d'applications backend associés renvoient un message d'erreur 502 par eux-mêmes.

Pour trouver la source de ces erreurs 502 :

  • Activez les journaux d'accès ELB sur votre Classic Load Balancer pour consulter le code de réponse backend et Elastic Load Balancing (ELB) pour chaque requête. Une entrée de journaux d'accès comprend deux champs : un elb_status_code et un backend_status_code. Utilisez ces codes pour déterminer la source de l'erreur 502.
  • Consultez les métriques CloudWatch de l'équilibreur de charge pour consulter les erreurs 502 générées par le backend, qui apparaissent sous le métrique HTTPCode_Backend_5XX. Les erreurs 502 générées par l'ELB apparaissent sous le métrique HTTPCode_ELB_5XX.

Si la réponse du backend est la source de l'erreur 502 de l'ELB, le problème peut être causé par :

  • Une réponse comprenant plus d'un CRLF entre chaque en-tête.
  • Une réponse comprenant un en-tête de contenu de réponse incluant un nombre non entier.
  • Une réponse comprend plus d'octets dans le corps de texte que la valeur d'en-tête de contenu de réponse.

Si l'erreur 502 est générée par vos serveurs backend, contactez le propriétaire de votre application. Si l'erreur 502 est générée par le Classic Load Balancer, la réponse HTTP du backend est mal formée. Suivez les étapes ci-dessous pour résoudre les erreurs 502 générées par l'ELB.

1. Vérifiez si le corps de réponse renvoyé par l'application principale est conforme aux spécifications HTTP détaillées dans les RFC suivantes :
RFC 7230 - HTTP/1.1: Message Syntax and Routing
RFC 7231 - HTTP/1.1: Semantics and Content
RFC 7232 - HTTP/1.1: Conditional Requests
RFC 7233 - HTTP/1.1: Range Requests
RFC 7234 - HTTP/1.1: Caching
RFC 7235 - HTTP/1.1: Authentication

2. Vérifiez que l'en-tête de réponse dispose d'une syntaxe adéquate : une clé et la valeur, comme Content-Type:text. Assurez-vous que l'encodage content-length ou transfer n'est pas absent de l'en-tête de réponse HTTP. Pour plus d'informations sur les champs d'en-tête HTTP de serveur web, consultez la Liste de champs d'en-tête HTTP. Examinez les réponses HTTP renvoyées en exécutant une commande semblable à la suivante :

curl -vko /dev/null server_instance_IP

3. Vérifiez le journal d'accès de l'ELB à la recherche d'erreurs HTTP 502 en double. Les erreurs 502 pour elb_status_code et backend_status_code indiquent qu'il y a un problème avec une ou plusieurs instances de serveur Web. Identifiez les instances de serveur Web présentant le problème, puis vérifiez les journaux des serveurs Web des instances de serveur Web backend. Consultez les emplacements de journaux suivants pour certains serveurs Web et systèmes d'exploitation répandus :

Journaux Apache

  • Les journaux de serveur web de CentOS, RHEL, Fedora et Amazon Linux se trouvent dans le répertoire /var/log/httpd/.
  • Les journaux de serveur web de Debian et Ubuntu Linux se trouvent dans le répertoire /var/log/apache2 and /var/log/lighthttpd/.

Journaux Nginx

  • L'emplacement des journaux d'accès nginx est défini dans le fichier nginx.conf : access_log /path/to/access.log
  • L'emplacement par défaut est /var/log/nginx/access.log

Journaux IIS

Les journaux de serveur web de Windows IIS 7, IIS 7.5 et IIS 8.0 se trouvent dans le répertoire inetpub\logs\Logfiles. Pour plus d'informations sur les journaux Internet Information Server (IIS), consultez Le code d'état HTTP dans IIS 7.0, IIS 7.5 et IIS 8.0. Si vous avez confirmé que vos erreurs 502 sont générées par l'ELB et que la réponse de votre backend est conforme aux conventions RFC, contactez AWS Support.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 09/09/2016

Date de mise à jour : 10/4/2018