Mon client web reçoit un message d'erreur HTTP 502 lors de l'envoi de demandes à un site web par le biais d'un équilibreur de charge.

Des erreurs HTTP 502 (Bad Gateway) peuvent se produire si le serveur web ou les serveurs d'applications principaux associés qui s'exécutent sur des instances EC2 renvoient un message d'erreur qui ne peut pas être analysé par Elastic Load Balancing (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 (qui remplacent RFC 2616) :
    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 la syntaxe de l'en-tête est correcte ; par exemple, avec une clé et la valeur (par ex., type de contenu:texte). Assurez-vous que l'encodage content-length ou transfer n'est pas absent dans 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. Vous pouvez également examiner les réponses HTTP dans la réponse HTTP renvoyée en exécutant la commande
    curl -lv <adresse IP d'instance de serveur web>.
    Remarque
    Vous pouvez télécharger Curl for Windows à partir du Site de téléchargement cURL.
  3. Exécutez la commande suivante à partir d'un shell de commande Linux ou d'une invite de commande Windows et insérez le nom de votre serveur web ou de votre serveur d'applications principal. Assurez-vous d'utiliser le numéro de port TCP de votre serveur web (généralement, le port 80) ou le port utilisé lorsque le serveur web communique avec les serveurs d'applications principaux.
    curl -vv -so /dev/null <adresse IP d'instance> numéro de port
    Si la commande renvoie « erreur de serveur interne », ceci indique généralement qu'un problème doit être résolu sur une ou plusieurs instances du serveur d'applications principal.
  4. Recherchez des erreurs HTTP 502 répétées ou successives dans les journaux d'accès ELB ; ces erreurs indiquent qu'un problème doit être résolu sur une ou plusieurs instances de serveur web. Vérifiez ensuite les journaux de serveur web des instances du serveur web principal :
      • 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/.
      • 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.
      • Pour plus d'informations sur la configuration de la journalisation pour un serveur web dans Windows Server 2003, consultez Configurer l'enregistrement dans le journal pour un site Web dans Windows Server 2003.

Elastic Load Balancing, ELB, Auto Scaling, délai d'expiration, erreurs HTTP 502, dépannage, httpd, Apache, bad gateway


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