Acheminer le trafic web selon l’URL à l’aide d’Azure CLI
En tant qu’administrateur informatique gérant le trafic web, vous souhaitez aider vos clients et utilisateurs à obtenir les informations dont ils ont besoin le plus rapidement possible. Pour optimiser leur expérience, vous pouvez acheminer différents types de trafic web vers différentes ressources de serveur. Cet article vous montre comment utiliser Azure CLI pour installer et configurer l’acheminement Application Gateway pour différents types de trafic depuis votre application. L’acheminement dirige le trafic vers différents pools de serveurs basé sur l’URL.
Dans cet article, vous apprendrez comment :
- Créer un groupe de ressources pour les ressources réseau dont vous avez besoin
- Créer les ressources réseau
- Créer une passerelle d’application pour le trafic provenant de votre application
- Spécifier des pools de serveurs et des règles d’acheminement pour les différents types de trafic
- Créer un groupe identique pour chaque pool afin que ce dernier puisse effectuer une mise à l'échelle
- Exécuter un test pour vérifier que les différents types de trafic sont dirigés vers le bon pool
Si vous préférez, vous pouvez suivre cette procédure en utilisant Azure PowerShell ou le portail Azure.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet tutoriel nécessite la version 2.0.4 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Créer un groupe de ressources
Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Créez un groupe de ressources avec az group create
.
L’exemple suivant crée un groupe de ressources nommé myResourceGroupAG à l’emplacement eastus.
az group create --name myResourceGroupAG --location eastus
Créer des ressources réseau
Créez le réseau virtuel nommé myVNet et le sous-réseau nommé myAGSubnet à l’aide de la commande az network vnet create
. Ajoutez ensuite un sous-réseau nommé myBackendSubnet nécessaire par les serveurs principaux à l’aide de az network vnet subnet create
. Créez l’adresse IP publique nommée myAGPublicIPAddress à l’aide de la commande az network public-ip create
.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
Créer la passerelle d’application avec une carte URL
Utilisez az network application-gateway create
pour créer une passerelle d’application nommée myAppGateway. Quand vous créez une passerelle d’application avec Azure CLI, vous spécifiez des informations de configuration, telles que la capacité, la référence SKU et les paramètres HTTP. La passerelle d’application est affectée à myAGSubnet et à myAGPublicIPAddress.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 100
La création de la passerelle d’application peut prendre plusieurs minutes. Une fois la passerelle d’application créée, vous pouvez voir ces nouvelles fonctionnalités :
Fonctionnalité | Description |
---|---|
appGatewayBackendPool | Une passerelle d’application doit avoir au moins un pool d’adresses backend. |
appGatewayBackendHttpSettings | Spécifie que le port 80 et un protocole HTTP sont utilisés pour la communication. |
appGatewayHttpListener | Écouteur par défaut associé à appGatewayBackendPool |
appGatewayFrontendIP | Assigne myAGPublicIPAddress à appGatewayHttpListener. |
rule1 | Règle de routage par défaut associée à appGatewayHttpListener. |
Ajouter un port et les pools principaux image et vidéo
Ajoutez des pools principaux nommés imagesBackendPool et videoBackendPool à votre passerelle d’application à l’aide de la commande az network application-gateway address-pool create
. Ajoutez le port frontal pour les pools à l’aide de la commande az network application-gateway frontend-port create
.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name port8080
Ajouter un écouteur principal
Ajoutez l’écouteur principal nommé backendListener, nécessaire pour acheminer le trafic, à l’aide de la commandeaz network application-gateway http-listener create
.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Ajouter une carte de chemin d’accès URL
Les cartes de chemin d’accès URL assurent que certaines URL sont acheminées vers des pools principaux spécifiques. Créer des cartes de chemin d’accès nommés imagePathRule et videoPathRule à l’aide des commandes az network application-gateway url-path-map create
et az network application-gateway url-path-map rule create
.
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name myPathMap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name myPathMap \
--paths /video/* \
--address-pool videoBackendPool \
--http-settings appGatewayBackendHttpSettings
Ajouter une règle de routage
La règle d’acheminement associe les cartes d’URL à l’écouteur créé. Ajoutez une règle nommée rule2 à l’aide de la commande az network application-gateway rule create
.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map myPathMap \
--address-pool appGatewayBackendPool \
--priority 200
Créer des groupes de machines virtuelles identiques
Dans cet article, vous allez créer trois groupes de machines virtuelles identiques qui prennent en charge les trois pools principaux que vous avez créés. Ils sont nommés myvmss1, myvmss2 et myvmss3. Chacun contient deux instances de machines virtuelles sur lesquelles NGINX sera installé.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username azureuser \
--admin-password Azure123456! \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Installer NGINX
for i in `seq 1 3`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
done
Tester la passerelle d’application
Pour obtenir l’adresse IP publique de la passerelle d’application, utilisez la commande az network public-ip show. Copiez l’adresse IP publique, puis collez-la dans la barre d’adresses de votre navigateur. Par exemple, http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
ou http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Modifiez l’URL http://<ip-address>:8080/images/test.htm, en remplaçant votre adresse IP par <ip-address>. Vous devez ensuite voir quelque chose ressemblant à ceci :
Modifiez l’URL http://<ip-address>:8080/video/test.htm, en remplaçant votre adresse IP par <ip-address>. Vous devez ensuite voir quelque chose ressemblant à ceci.
Nettoyer les ressources
Lorsque vous n’en avez plus besoin, supprimez le groupe de ressources, la passerelle d’application et toutes les ressources associées.
az group delete --name myResourceGroupAG
Étapes suivantes
Créer une passerelle d’application avec réacheminement par chemin d’URL