Codes de réponse HTTP dans Application Gateway
Cet article explique pourquoi Azure Application Gateway retourne des codes de réponse HTTP spécifiques. Les causes courantes et les étapes de résolution de problèmes sont fournies pour vous aider à déterminer la cause racine des codes d’erreur de réponse HTTP. Des codes de réponse HTTP peuvent être renvoyés à une demande de client indépendamment du fait que la connexion ait été lancée vers une cible de back-end ou pas.
Codes de réponse 3XX (redirection)
Les réponses 300-399 sont présentées quand une demande de client correspond à une règle de passerelle applicative qui a des redirections configurées. Les redirections peuvent être configurées sur une règle en l’état ou via une règle de mappage de chemin. Pour plus d’informations sur les redirections, consultez Vue d’ensemble de la redirection Application Gateway.
301 Redirection permanente
Les réponses HTTP 301 sont présentées quand une règle de redirection est spécifiée avec la valeur Permanent.
302 Trouvé.
Les réponses HTTP 302 sont présentées quand une règle de redirection est spécifiée avec la valeur Trouvé.
303 Voir autres
Les réponses HTTP 303 sont présentées quand une règle de redirection est spécifiée avec la valeur Voir autres.
307 Redirection temporaire
Les réponses HTTP 307 sont présentées quand une règle de redirection est spécifiée avec la valeur Temporaire.
Codes de réponse 4XX (erreur du client)
Les codes de réponse 400-499 indiquent un problème initié à partir du client. Ces problèmes englobent les demandes envoyées par le client à un nom d’hôte qui ne correspond pas, l’expiration du délai d’attente de la demande, une demande non authentifiée, une demande malveillante, etc.
Application Gateway collecte des métriques qui capturent la distribution des codes d’état 4xx/5xx, et a un mécanisme de journalisation qui capture des informations telles que l’adresse IP du client URI avec le code de réponse. Les métriques et la journalisation permettent d’effectuer une résolution des problèmes supplémentaire. Les clients peuvent également recevoir une réponse 4xx d’autres proxys entre l’appareil client et Application Gateway, par exemple, CDN et d’autres fournisseurs d’authentification. Consultez les articles suivants pour plus d’informations.
Métriques prises en charge par la référence SKU Application Gateway V2Journaux de diagnostic
400 Demande incorrecte.
Les codes de réponse HTTP 400 sont couramment observés quand :
- Du trafic non-HTTP/HTTPS est envoyé à une passerelle applicative avec un écouteur HTTP ou HTTPS.
- Du trafic HTTP est envoyé à un écouteur avec HTTPS, sans redirection configurée.
- L’authentification mutuelle est configurée et ne peut pas négocier correctement.
- La requête n’est pas conforme à la RFC.
Voici quelques raisons courantes pour lesquelles la requête peut ne pas être conforme à la RFC :
Catégorie | Exemples |
---|---|
Hôte non valide dans la ligne de requête | Hôte contenant deux signes deux-points (example.com:8090:8080) |
En-tête de l’hôte manquant | La requête n’a pas d’en-tête de l’hôte |
Présence d’un caractère malformé ou illégal | Les caractères réservés sont &,!. La solution de contournement consiste à le coder sous forme de pourcentage. Par exemple : %& |
Version HTTP non valide | Get /content.css HTTP/0.3 |
Le nom du champ d’en-tête et l’URI contiennent un caractère non ASCII | GET /«úü¡»¿.doc HTTP/1.1 |
En-tête Content-Length manquant pour une requête POST | Explicite |
Méthode HTTP non valide | GET123 /index.html HTTP/1.1 |
En-têtes dupliqués | Authorization:<base64 encoded content>, Authorization: <base64 encoded content> |
Valeur non valide dans Content-Length | Content-Length: abc,Content-Length: -10 |
Dans les cas où l’authentification mutuelle est configurée, plusieurs scénarios peuvent conduire à une réponse HTTP 400 du client, par exemple :
- Le certificat client n’est pas présenté, mais l’authentification mutuelle est activée.
- La validation ND est activée et le ND du certificat client ne correspond pas au ND de la chaîne de certificat spécifiée.
- La chaîne du certificat client ne correspond pas à la chaîne de certificat configurée dans la stratégie SSL définie.
- Le certificat client a expiré.
- La vérification de révocation du client OCSP est activée et le certificat est révoqué.
- La vérification de révocation du client OCSP est activée, mais elle ne peut pas être contactée.
- La vérification de révocation du client OCSP est activée, mais le répondeur OCSP n’est pas fourni dans le certificat.
Pour plus d’informations sur la résolution des problèmes d’authentification mutuelle, consultez Résolution des codes d’erreur.
401 - Non autorisé
Une réponse HTTP 401 Non autorisé est retournée au client si celui-ci n’est pas autorisé à accéder à la ressource. Le code 401 peut être retourné pour plusieurs raisons. En voici quelques-unes, avec des correctifs potentiels.
- Si le client a accès, il peut avoir un cache de navigateur obsolète. Effacez le cache du navigateur et essayez d’accéder à l’application à nouveau.
Une réponse HTTP 401 Non autorisé peut être retournée pour une requête de sonde AppGW si le pool de back-ends est configuré avec l’authentification NTLM. Dans ce scénario, le backend est marqué comme étant sain. Il existe plusieurs manières de résoudre ce problème :
- Autorisez l’accès anonyme sur le pool backend.
- Configurez la sonde pour envoyer la demande vers un autre site « faux » qui n’exige pas d’authentification NTLM.
- Non recommandé, car cela ne nous indiquera pas si le site réel derrière la passerelle Application Gateway est actif ou non.
- Configurez la passerelle applicative de façon à autoriser les réponses 401 comme valides pour les sondes : Conditions de mise en correspondance de sondes.
403 - Interdit
HTTP 403 Interdit est présenté quand les clients utilisent des références SKU WAF et que WAF est configuré en mode Prévention. Si des ensembles de règles WAF activés ou des règles WAF de refus personnalisées correspondent aux caractéristiques d’une requête entrante, le client reçoit une réponse 403 Interdit.
Voici d’autres raisons pour lesquelles les clients peuvent recevoir des réponses 403 :
- Vous utilisez App Service comme back-end et il est configuré de façon à autoriser l’accès uniquement à partir d’Application Gateway. Cela peut conduire App Services à retourner une erreur 403. Cela se produit généralement lorsque des liens de redirection/href pointent directement vers App Services au lieu de pointer vers l’adresse IP d’Application Gateway.
- Si vous accédez à un blog de stockage et à Application Gateway et que le point de terminaison de stockage se trouve dans une autre région, une erreur 403 est retournée si l’adresse IP publique d’Application Gateway n’est pas autorisée. Consultez Accorder l’accès à partir d’une plage d’adresses IP Internet.
404 - Page introuvable
Une réponse HTTP 404 peut être renvoyée si une demande est envoyée à une passerelle applicative qui :
- Utilise une référence SKU v2.
- N’a pas de correspondance de nom d’hôte définie dans les écouteurs multisites.
- N’est pas configurée avec un écouteur de base.
408 - Expiration du délai d’attente de la demande
Une réponse HTTP 408 peut être observée quand les requêtes du client envoyées à l’écouteur front-end de la passerelle applicative ne répondent pas dans les 60 secondes. Cette erreur peut être observée en cas de congestion du trafic entre les réseaux locaux et Azure, quand une appliance virtuelle inspecte le trafic, ou quand le client lui-même est submergé.
413 Entité de requête trop grande
Une réponse HTTP 413 peut être observée lors de l’utilisation du pare-feu d’applications web Azure sur Application Gateway, lorsque la taille de la requête du client dépasse la limite maximale de taille du corps de la requête. Le champ de taille maximale du corps de la demande contrôle la limite totale de la taille de la demande, à l'exclusion de tout téléchargement de fichier. La valeur par défaut pour la taille du corps de la demande est de 128 Ko. Pour plus d’informations, consultez Limites de taille des requêtes adressées au pare-feu d’applications web.
499 - Le client a fermé la connexion
Une réponse HTTP 499 est présentée si une demande de client envoyée aux passerelles applicatives utilisant la référence SKU v2 est fermée avant que le serveur ne réponde. Cette erreur peut être observée dans deux scénarios. Le premier scénario est lorsqu’une réponse volumineuse est retournée au client et celui-ci a peut-être fermé ou actualisé l’application avant que le serveur n’ait terminé l’envoi d’une réponse volumineuse. Le deuxième scénario est lorsque le délai d’attente côté client est faible et ne suffit pas pour recevoir la réponse du serveur. Dans ce cas, il est préférable d’augmenter le délai d’attente sur le client. Dans les passerelles d’application utilisant la référence SKU V1, un code de réponse HTTP 0 peut également être déclenché pour le client fermant la connexion avant que le serveur ait terminé de répondre également.
Codes de réponse 5XX (erreur du serveur)
Les codes de réponse 500-599 indiquent qu’un problème s’est produit avec la passerelle applicative ou le serveur de back-end pendant l’exécution de la demande.
500 - Erreur interne du serveur
Azure Application Gateway ne doit pas présenter de codes de réponse 500. Ouvrez une demande d’assistance si vous voyez ce code, car il s’agit d’une erreur interne au service. Pour plus d’informations sur l’ouverture d’un cas de support, consultez Créer une demande de support Azure.
502 - Passerelle incorrecte
Les erreurs HTTP 502 peuvent avoir plusieurs causes racines, par exemple :
- NSG, UDR (route définie par l’utilisateur) ou DNS personnalisé bloquant l’accès aux membres du pool de back-ends.
- Machines virtuelles de back-end ou instances de groupe de machines virtuelles identiques ne répondant pas à la sonde d’intégrité par défaut.
- Configuration non valide ou incorrecte des sondes d’intégrité personnalisées.
- Le pool de back-ends d’Azure Application Gateway n’est pas configuré ou est vide.
- Aucune des machines virtuelles ou des instances du groupe de machines virtuelles identiques n’est intègre.
- Expiration du délai d’attente de requête ou problèmes de connectivité avec des requêtes utilisateur : la référence SKU Application Gateway V1 a envoyé des erreurs HTTP 502 si le temps de réponse du serveur principal dépasse la valeur de délai d’attente configurée dans le paramètre back-end.
Pour plus d’informations sur les scénarios où les erreurs 502 se produisent et comment les résoudre, consultez Résoudre les erreurs de passerelle incorrecte.
504 - Dépassement du délai de la passerelle
La référence SKU Application Gateway V2 a envoyé des erreurs HTTP 504 si le temps de réponse du serveur principal dépasse la valeur de délai d’attente configurée dans le paramètre de back-end.
IIS
Si votre serveur back-end est IIS, consultez Limites par défaut des sites web pour définir la valeur du délai d’expiration. Pour plus d’informations, reportez-vous à l’attribut connectionTimeout
. Vérifiez que le délai d’expiration de connexion dans IIS correspond ou ne dépasse pas le délai d’expiration défini dans le paramètre back-end.
nginx
Si le serveur principal est nginx ou le contrôleur d’entrée nginx, et s’il a des serveurs en amont, vérifiez que la valeur de nginx:proxy_read_timeout
correspond au délai d’attente défini dans le paramètre de back-end ou ne le dépasse pas.
Étapes suivantes
Si les informations de cet article ne vous aident pas à résoudre le problème, envoyez un ticket de support.