Router le trafic avec Application Gateway
Application Gateway gère les requêtes que les applications clientes peuvent envoyer à une application web. Application Gateway route le trafic vers un pool de serveurs web en fonction de l’URL de la requête. C’est ce qu’on appelle le routage selon la couche Application. Le pool de serveurs web peut être composé de machines virtuelles Azure, de groupes de machines virtuelles identiques, d’Azure App Service et même de serveurs locaux.
Comment Application Gateway route les requêtes
Les clients envoient des requêtes à vos applications web via l’adresse IP ou le nom DNS de la passerelle. La passerelle route les requêtes vers un serveur web sélectionné dans le pool de back-ends, à l’aide d’un ensemble de règles configurées pour que la passerelle puisse déterminer où la requête doit aller.
Il existe deux méthodes principales pour le routage du trafic : le routage basé sur le chemin et l’hébergement multisite. Voyons ce que permettent de faire chacune de ces méthodes.
Routage basé sur le chemin
Le routage basé sur le chemin vous permet d’envoyer des requêtes avec différents chemins d’URL vers un autre pool de serveurs back-end. Par exemple, vous pouvez diriger les requêtes avec le chemin /video/*
vers un pool de back-ends contenant des serveurs qui sont optimisés pour gérer le streaming vidéo, et diriger les requêtes /images/*
vers un pool de serveurs qui gèrent la récupération des images.
Hébergement de plusieurs sites
L’hébergement multisite vous permet de configurer plusieurs applications web sur la même instance de passerelle applicative. Dans une configuration multisite, vous pouvez inscrire plusieurs noms DNS (CNAME) pour l’adresse IP de la passerelle applicative, en spécifiant le nom de chaque site. Application Gateway utilise différents écouteurs pour attendre les requêtes de chaque site. Chaque écouteur passe la requête à une règle qui peut router la requête vers les serveurs d’un autre pool de back-ends. Par exemple, vous pouvez configurer Application Gateway pour diriger toutes les requêtes pour http://contoso.com
vers les serveurs d’un pool de back-ends, et les requêtes pour http://fabrikam.com
vers un autre pool de back-ends. Le diagramme suivant montre cette configuration :
Les configurations multisites sont utiles pour prendre en charge les applications multilocataires, où chaque locataire dispose de son propre groupe de machines virtuelles ou autres ressources hébergeant une application web.
Autres fonctionnalités de routage
Outre le routage basé sur le chemin et l’hébergement multisite, il existe d’autres fonctionnalités pour le routage Application Gateway.
- Redirection : la redirection peut être utilisée vers un autre site ou de HTTP vers HTTPS.
- Réécrire les en-têtes HTTP : les en-têtes HTTP permettent au client et au serveur de passer des informations supplémentaires dans la requête ou la réponse.
- Pages d’erreur personnalisées : Application Gateway vous permet de créer des pages d’erreur personnalisées au lieu d’afficher les pages d’erreur par défaut. Vous pouvez utiliser votre marque et votre mise en page personnelle à l’aide d’une page d’erreur personnalisée.
Équilibrage de charge dans Application Gateway
Application Gateway équilibre automatiquement la charge des requêtes envoyées aux serveurs dans chaque pool de back-ends à l’aide d’un mécanisme de tourniquet (round-robin). Toutefois, vous pouvez configurer l’adhérence des sessions si toutes les requêtes pour un client doivent être routées vers le même serveur d’un pool de back-ends au sein d’une même session.
L’équilibrage de charge fonctionne avec le modèle de routage OSI Layer 7 que le routage Application Gateway implémente, ce qui signifie qu’il équilibre la charge des requêtes selon les paramètres de routage (noms d’hôte et chemins) que les règles Application Gateway utilisent. En comparaison, les autres équilibreurs de charge, comme Azure Load Balancer, fonctionnent au niveau du modèle OSI Layer 4 et répartissent le trafic en fonction de l’adresse IP de la cible d’une requête.
L’utilisation du modèle OSI Layer 7 permet à l’équilibrage de charge de tirer parti des fonctionnalités fournies par Application Gateway. Voici quelques fonctionnalités :
- Prise en charge des protocoles HTTP, HTTPS, HTTP/2 et WebSocket
- Pare-feu d’applications web pour se protéger des vulnérabilités des applications web
- Chiffrement de bout en bout des requêtes
- Mise à l’échelle automatique pour ajuster dynamiquement la capacité en fonction de la charge du trafic web
Routage pour le service Véhicules
Si nous revenons à notre scénario avec le service Véhicules, nous pouvons utiliser Application Gateway pour résoudre les deux problèmes. Nous pouvons utiliser l’équilibrage de charge et les fonctionnalités de sonde d’intégrité pour que les éventuels échecs n’aient pas d’impact sur les utilisateurs. Nous pouvons également utiliser le routage basé sur le chemin pour fournir un point de terminaison aux utilisateurs afin qu’ils puissent accéder aux sites hébergés sur différents services web.
Voyons comment procéder.