Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Résoudre les problèmes liés à un Classic Load Balancer : erreurs HTTP

Mode de mise au point
Résoudre les problèmes liés à un Classic Load Balancer : erreurs HTTP - Elastic Load Balancing

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

La méthode HTTP (également appelée verbe) spécifie l'action à exécuter sur la ressource qui reçoit une demande HTTP. Les méthodes standard pour les demandes HTTP sont définies dans la section du RFC 2616 concernant les définitions de méthode. Les méthodes standard incluent GET, POST, PUT, HEAD et OPTIONS. Certaines applications web ont besoin (et parfois introduisent) de méthodes qui sont des extensions de méthodes HTTP/1.1. Les exemples courants de méthodes étendues HTTP incluent PATCH, REPORT, MKCOL, PROPFIND, MOVE et LOCK. Elastic Load Balancing accepte toutes les méthodes HTTP standard et non standard.

Les demandes et les réponses HTTP utilisent des champs d'en-tête pour envoyer des informations concernant les messages HTTP. Les champs d'en-tête sont des paires nom-valeur dont les noms et les valeurs sont séparés par un signe deux points, et qui sont séparées entre elles par un retour chariot (CR) et un saut de ligne (LF). Un ensemble standard de champs d'en-tête HTTP est défini dans la section du RFC 2616 concernant les en-têtes de message. Pour de plus amples informations, veuillez consulter En-têtes HTTP et Classic Load Balancers.

Lorsqu'un équilibreur de charge reçoit une demande HTTP, il vérifie que cette dernière est correcte et contrôle la longueur de la méthode. La longueur totale de la méthode dans une demande HTTP vers un équilibreur de charge ne doit pas dépasser 127 caractères. Si la requête HTTP réussit les deux vérifications, l'équilibreur de charge envoie la demande à l' EC2 instance. Si le champ de méthode de la demande est incorrect, l'équilibreur de charge répond par une erreur HTTP 400 : BAD_REQUEST. Si la longueur de la méthode dans la demande dépasse 127 caractères, l'équilibreur de charge répond par une erreur HTTP 405 : METHOD_NOT_ALLOWED.

L' EC2 instance traite une demande valide en implémentant la méthode dans la demande et en renvoyant une réponse au client. Vos instances doivent être configurées pour traiter les méthodes prises en charge et non prises en charge.

Voici des messages d'erreur renvoyés par votre équilibreur de charge, les causes potentielles et les étapes que vous pouvez suivre pour résoudre les problèmes.

HTTP 400 : BAD_REQUEST

Description : indique que le client a envoyé une demande incorrecte.

Cause 1 : le client a envoyé une demande incorrecte qui ne respecte pas les spécifications HTTP. Par exemple, une demande ne peut pas comporter d'espace dans l'URL.

Cause 2 : le client utilise la méthode HTTP CONNECT, qui n'est pas prise en charge par Elastic Load Balancing.

Solution : connectez-vous directement à votre instance et saisissez les détails de la demande du client. Vérifiez que les demandes sont correctes dans les en-têtes et l'URL. Vérifiez que la demande respecte les spécifications HTTP. Vérifiez que la méthode HTTP CONNECT n'est pas utilisés.

HTTP 405 : METHOD_NOT_ALLOWED

Description : indique que la longueur de la méthode n'est pas valide.

Cause : la longueur de la méthode dans l'en-tête de la demande dépasse 127 caractères.

Solution : vérifiez la longueur de la méthode.

HTTP 408 : Délai d'attente des demandes

Description : indique que le client a annulé la demande ou n'a pas pu envoyer une demande complète.

Cause 1 : une interruption du réseau ou une structure de demande incorrecte, comme des en-têtes partiellement formés, une taille de contenu spécifiée ne correspondant pas à la taille de contenu réelle transmise, etc.

Solution 1 : inspectez le code qui constitue la demande et essayez de l'envoyer directement à vos instances enregistrées (ou à un environnement de développement/test) où vous aurez plus de contrôle pour examiner la demande réelle.

Cause 2 : la connexion au client est fermée (l'équilibreur de charge n'a pas pu envoyer une réponse)

Solution 2 : vérifiez que le client ne ferme pas la connexion avant l'envoi d'une réponse en utilisant un renifleur de paquets sur la machine sur laquelle vous effectuez la demande.

HTTP 502 : Passerelle erronée

Description : indique que l'équilibreur de charge n'a pas pu analyser la réponse envoyée à partir d'une instance enregistrée.

Cause : réponse incorrecte d'une instance ou problème éventuel lié à l'équilibreur de charge.

Solution : vérifiez que la réponse envoyée à partir de l'instance est conforme aux spécifications HTTP. Accédez au Centre AWS Support pour obtenir de l'aide.

HTTP 503 : Service indisponible

Description : indique que l'équilibreur de charge ou les instances enregistrées sont à l'origine de l'erreur.

Cause 1 : capacité insuffisante dans l'équilibreur de charge pour traiter la demande.

Solution 1 : il doit s'agir d'un problème temporaire qui ne devrait pas durer plus de quelques minutes. Si le problème persiste, accédez au Centre AWS Support pour obtenir de l'aide.

Cause 2 : aucune instance n'est enregistrée.

Solution 2 : enregistrez au moins une instance dans chaque zone de disponibilité dans laquelle votre équilibreur de charge est configuré pour répondre. Vérifiez cela en consultant les HealthyHostCount indicateurs contenus dans CloudWatch. Si vous ne pouvez pas vérifier qu'une instance est enregistrée dans chaque zone de disponibilité, nous vous recommandons d'activer l'équilibrage de charge entre zones. Pour de plus amples informations, veuillez consulter Configurer la répartition de charge entre zones pour votre Classic Load Balancer.

Cause 3 : il n'y a aucune instance saine.

Solution 3 : vérifiez que vous avez des instances saines dans chaque zone de disponibilité dans laquelle votre équilibreur de charge est configuré pour répondre. Vérifiez ceci en examinant la métrique HealthyHostCount.

Cause 4 : la file d'attente des hausses est saturée.

Solution 4 : assurez-vous que vos instances ont une capacité suffisante pour gérer le taux de demandes. Vérifiez ceci en examinant la métrique SpilloverCount.

HTTP 504 : Délai de passerelle expiré

Description : indique que l'équilibreur de charge a fermé une connexion parce qu'une demande ne s'est pas achevée avant la fin du délai d'inactivité.

Cause 1 : le délai de réponse de l'application est supérieur au délai d'inactivité configuré.

Solution 1 : surveillez les métriques HTTPCode_ELB_5XX et Latency. Si ces métriques augmentent, cela peut être dû au fait que l'application ne répond pas avant la fin du délai d'inactivité. Pour plus d'informations sur les demandes qui dépassent le délai imparti, activez les journaux d'accès sur l'équilibreur de charge et vérifiez les codes de réponse 504 dans les journaux générés par Elastic Load Balancing. Si nécessaire, vous pouvez augmenter votre capacité ou le délai d'inactivité configuré afin que les opérations longues (par exemple, le chargement d'un fichier volumineux) puissent se terminer. Pour plus d'informations, consultez Configurer le délai d'inactivité des connexions de votre Classic Load Balancer et Comment résoudre les problèmes de latence élevée liés à Elastic Load Balancing.

Cause 2 : des instances enregistrées ferment la connexion à Elastic Load Balancing.

Solution 2 : activez les paramètres de maintien en vie sur vos EC2 instances et assurez-vous que le délai de conservation est supérieur aux paramètres de délai d'inactivité de votre équilibreur de charge.

Rubrique précédente :

Erreurs d'API
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.