Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Résumé
Découvrez comment diagnostiquer et résoudre les problèmes d’affinité de session avec Azure Application Gateway. En conservant les utilisateurs sur le même serveur principal, vous pouvez améliorer les performances des applications.
Note
Utilisez le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Install Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrate Azure PowerShell d’AzureRM vers Az.
Vue d’ensemble
La fonctionnalité d’affinité de session basée sur les cookies est utile pour conserver une session utilisateur sur le même serveur. En utilisant des cookies gérés par la passerelle, Application Gateway dirige le trafic ultérieur d’une session utilisateur vers le même serveur pour le traitement. Cette fonctionnalité est importante dans les cas où l’état de session est enregistré localement sur le serveur pour une session utilisateur. L’affinité de session est également connue sous le terme de « sessions permanentes ».
Note
Application Gateway v1 utilise un cookie nommé ARRAffinity pour diriger le trafic vers le même membre du pool principal. Dans Application Gateway v2, ce cookie est renommé ApplicationGatewayAffinity. Dans le cadre de ce document, ApplicationGatewayAffinity est utilisé comme exemple. ARRAffinity peut être substitué le cas échéant pour les instances Application Gateway v1.
Causes de problème possibles
Les problèmes de maintenance de l’affinité de session basée sur les cookies peuvent se produire pour les raisons suivantes :
- Vous n’avez pas activé le paramètre d’affinité basée sur les cookies .
- Votre application ne peut pas gérer l’affinité basée sur les cookies.
- Votre application utilise l’affinité basée sur les cookies, mais les requêtes continuent de rebondir entre les serveurs principaux.
Vérifiez si le paramètre « Affinité basée sur les cookies » est activé
Les problèmes d’affinité de session peuvent se produire si vous oubliez d’activer le paramètre « Affinité basée sur les cookies ». Pour vérifier si vous avez activé le paramètre « Affinité basée sur les cookies » sous l’onglet Paramètres principaux du portail Azure, procédez comme suit :
Connectez-vous au portail Azure.
Dans le volet de navigation gauche , sélectionnez Toutes les ressources. Sélectionnez le nom de la passerelle d’application dans le panneau Toutes les ressources . Si l’abonnement que vous avez sélectionné comporte déjà plusieurs ressources, entrez le nom de la passerelle d’application dans la zone Filtrer par nom... pour accéder facilement à la passerelle d’application.
Sélectionnez l’onglet Paramètres principaux sous PARAMÈTRES.
Sélectionnez le paramètre serveur. Dans le paramètre Ajouter un back-end, vérifiez si l’affinité basée sur les cookies est activée.
Pour vérifier si la valeur de « CookieBasedAffinity » est activée sous « backendHttpSettingsCollection », utilisez l’une des méthodes suivantes :
- Exécutez Get-AzApplicationGatewayBackendHttpSetting dans PowerShell.
- Examinez le fichier JSON à l’aide du modèle Azure Resource Manager.
"cookieBasedAffinity": "Enabled",
L’application ne peut pas gérer l’affinité basée sur les cookies
La cause
Le passerelle d’application ne peut gérer l’affinité de session qu’en utilisant un cookie.
Solution de contournement
Si l'application ne peut pas gérer l'affinité basée sur les cookies, vous devez utiliser un équilibreur de charge externe ou interne Azure ou une autre solution tierce.
L’application utilise l’affinité basée sur les cookies, mais les requêtes continuent de rebondir entre les serveurs principaux
Symptôme
Vous activez le paramètre d’affinité basée sur les cookies. Lorsque vous accédez à Application Gateway à l’aide d’une URL de nom court dans Internet Explorer, par http://websiteexemple, la demande rebondit toujours entre les serveurs principaux.
Pour identifier ce problème, suivez ces instructions :
Suivez une trace de débogueur web sur le client qui se connecte à l’application derrière Application Gateway. Cet exemple utilise Fiddler. Conseil Si vous ne savez pas comment utiliser Fiddler, cochez l'option Je veux collecter le trafic réseau et l'analyser à l'aide du débogueur web en bas.
Vérifiez et analysez les journaux de session pour déterminer si les cookies que le client fournit incluent les détails d’ApplicationGatewayAffinity. Si vous ne trouvez pas les détails d’ApplicationGatewayAffinity, tels que
ApplicationGatewayAffinity=ApplicationGatewayAffinityValuedans le jeu de cookies, le client ne répond pas avec le cookie ApplicationGatewayAffinity fourni par Application Gateway. Par exemple:
L’application continue d’essayer de définir le cookie sur chaque requête jusqu’à ce qu’elle obtienne une réponse.
La cause
Ce problème se produit car Internet Explorer et d’autres navigateurs ne stockent pas ou n’utilisent pas le cookie avec une URL de nom court.
Résolution
Pour résoudre ce problème, accédez à Application Gateway à l’aide d’un nom de domaine complet (FQDN). Par exemple, utilisez http://website.com ou http://appgw.website.com.
Journaux supplémentaires pour résoudre des problèmes
Vous pouvez collecter et analyser des logs supplémentaires pour résoudre les problèmes liés à l'affinité de session sur la base des cookies.
- Analyser les journaux de l'Application Gateway
- Utiliser un débogueur web pour capturer et analyser le trafic HTTP ou HTTPS
Analyser les journaux Application Gateway
Pour collecter des journaux d'Application Gateway, suivez ces instructions :
Activez la journalisation à l’aide du portail Azure.
Dans le portail Azure, recherchez votre ressource, puis sélectionnez ParamètreDiagnostic.
Pour Application Gateway, trois journaux sont disponibles : Journal d’accès, Journal des performances et Journal du pare-feu.
Sélectionnez Ajouter un paramètre de diagnostic pour commencer à collecter des données.
La page Paramètre de diagnostic contient les paramètres des journaux de diagnostic. Dans cet exemple, Log Analytics stocke les journaux. Vous pouvez également utiliser Azure Event Hubs et un compte de stockage pour enregistrer les journaux de diagnostic.
Confirmez les paramètres, puis sélectionnez Enregistrer.
Utiliser un débogueur web pour capturer et analyser le trafic HTTP ou HTTPS
Les outils de débogage web comme Fiddler peuvent vous aider à déboguer des applications web en capturant le trafic réseau entre Internet et les ordinateurs de test. Ces outils vous permettent d’inspecter les données entrantes et sortantes à mesure que le navigateur reçoit ou l’envoie. Dans cet exemple, Fiddler a l’option de relecture HTTP qui peut vous aider à résoudre les problèmes côté client avec les applications web, en particulier les problèmes d’authentification.
Utilisez le débogueur web de votre choix. Dans cet exemple, utilisez Fiddler pour capturer et analyser le trafic HTTP ou HTTPS. Suivez les instructions suivantes :
Téléchargez Fiddler.
Note
Choisissez Fiddler4 si l’ordinateur de capture a .NET 4 installé. Sinon, choisissez Fiddler2.
Cliquez avec le bouton droit sur l’exécutable d’installation, puis exécutez en tant qu’administrateur pour l’installer.
Lorsque vous ouvrez Fiddler, il démarre automatiquement la capture du trafic (notez la capture en bas à gauche). Appuyez sur F12 pour démarrer ou arrêter la capture du trafic.
Probablement, vous êtes intéressé par le trafic HTTPS déchiffré. Activez le déchiffrement HTTPS en sélectionnant Outils>Fiddler Options et en cochant la case Déchiffrer le trafic HTTPS.
Pour supprimer les sessions non liées précédentes avant de reproduire le problème, sélectionnez X>Supprimer tout.
Lorsque vous reproduitz le problème, enregistrez le fichier à réviser en sélectionnant Fichier>Enregistrer>toutes les sessions.
Vérifiez et analysez les journaux de session pour déterminer le problème.
Par exemple:
Exemple A : Vous trouvez un journal de session indiquant que la requête est envoyée depuis le client, et qu'elle est dirigée vers l’adresse IP publique de l’Application Gateway. Sélectionnez ce journal des événements pour afficher les détails. Sur le côté droit, les données de la zone inférieure sont ce que l’Application Gateway retourne au client. Sélectionnez l’onglet RAW et déterminez si le client reçoit un « Set-Cookie : ApplicationGatewayAffinity=ApplicationGatewayAffinityValue ». S’il n’existe aucun cookie, l’affinité de session n’est pas définie ou si Application Gateway n’applique pas de cookie au client.
Note
Cette valeur ApplicationGatewayAffinity est l’ID de cookie qu’Application Gateway définit pour le client, à envoyer à un serveur back-end particulier.
Exemple B : Le journal de session suivant suivi de la précédente est le client qui répond à Application Gateway, qui définit ApplicationGatewayAffinity. Si l’ID de cookie ApplicationGatewayAffinity correspond, le paquet accède au même serveur principal que celui utilisé précédemment. Vérifiez les lignes suivantes de communication HTTP pour voir si le cookie ApplicationGatewayAffinity du client change.
Note
Pour la même session de communication, le cookie ne doit pas changer. Cochez la case supérieure à droite, sélectionnez l’onglet Cookies pour voir si le client utilise le cookie et le renvoyer à Application Gateway. Si ce n’est pas le cas, cela signifie que le navigateur client ne conserve et n’utilise pas le cookie pour les conversations. Parfois, le client peut mentir.