Pourquoi ai-je reçu une erreur HTTP 5xx lorsque je me suis connecté à des serveurs Web fonctionnant sur des instances EC2 configurées pour utiliser Classic Load Balancer ?

Dernière mise à jour : 17/06/2022

J'ai reçu une erreur HTTP 502, 503 ou 504 lorsque j'ai essayé de me connecter à des serveurs Web fonctionnant sur des instances EC2 configurées pour utiliser Classic Load Balancer. Comment dépanner et résoudre les erreurs 5xx ?

Solution

HTTP 502 (Bad Gateway) (Passerelle incorrecte)

Vous pouvez recevoir une erreur HTTP 502 si le serveur Web ou les serveurs d'applications backend associés s'exécutant sur des instances EC2 renvoient un message qui ne peut pas être analysé par Classic Load Balancer (CLB).

Pour résoudre cette erreur, consultez Je reçois des erreurs HTTP 502 lorsque je fais des requêtes via un Classic Load Balancer. Comment résoudre ces erreurs ?

HTTP 503 (Service Unavailable) (Service indisponible)

Les erreurs HTTP 503 peuvent se produire pour plusieurs raisons, notamment :

  • La file d'attente des hausses est pleine. Vérifiez que vos instances disposent d'une capacité suffisante pour gérer le taux de demandes en consultant la métrique SpilloverCount.
  • Aucune instance saine. Assurez-vous que vous avez des instances saines dans chaque zone de disponibilité à laquelle votre équilibreur de charge répond. Pour faire cela, consultez la métrique HealthyHostCount. Pour plus d'informations, consultez Résolution des problèmes d'un Classic Load Balancer : surveillance de l'état.
  • Vous n'avez pas enregistré au moins une instance dans chaque zone de disponibilité dans laquelle votre équilibreur de charge répond. Si vous ne pouvez pas confirmer qu'une instance est enregistrée dans chaque zone de disponibilité, activez l'équilibrage de charge entre zones.
  • La fonction Connection draining (Drainage de la connexion) n'est pas activée pour le Classic Load Balancer sur lequel vos instances de serveur Web sont enregistrées.

Pour obtenir de l'aide sur la résolution de cette erreur, consultez Comment résoudre les erreurs HTTP 503 renvoyées lors de l'utilisation de Classic Load Balancer ?

HTTP 504 (Gateway Timeout) (Délai d'expiration de la passerelle)

Les erreurs HTTP 504 se produisent pour les raisons suivantes :

  • Les instances de serveur Web ou de serveur d'applications backend sont occupées et ne peuvent pas répondre aux demandes dans le délai d'inactivité configuré pour Elastic Load Balancing (ELB). Pour plus d'informations, consultez Résolution des problèmes de latence élevée sur mon Classic Load Balancer ELB.
  • Les instances de serveur Web ou de serveur d'applications backend mettent fin aux connexions avant que l'équilibreur de charge ne le fasse. Cela entraîne des interruptions de connexion prématurées.
  • Les instances de serveur Web ou de serveur d'applications backend ont bloqué ou redémarré des processus de serveur lorsque des demandes sont en cours de traitement. Cela entraîne l'interruption de toutes les connexions par le serveur.
  • L'option AcceptFilter http/https est activée pour les instances du serveur Web Apache. Cela indique à Apache d'implémenter TCP_DEFER_ACCEPT sur les connexions.
  • Les instances du serveur Web Apache ont le module multi-processus Event activé mais n'ont pas configuré de manière optimale les modules multi-processus Prefork et Worker. Le délai d'inactivité par défaut d'ELB est de 60 secondes. Pour plus d'informations, consultez Quels sont les paramètres optimaux pour utiliser Apache ou NGINX en tant que serveur backend pour ELB ?

Pour obtenir de l'aide sur la résolution de cette erreur, consultez Comment résoudre les erreurs HTTP 504 renvoyées lors de l'utilisation d'un Classic Load Balancer ?