Weiterleiten von Webdatenverkehr basierend auf der URL mit der Azure-Befehlszeilenschnittstelle
Als IT-Administrator*in, der/die Webdatenverkehr verwaltet, möchten Sie Ihrer Kundschaft und Ihren Benutzer*innen dabei helfen, schnellstmöglich die benötigten Informationen zu erhalten. Zur Verbesserung der Benutzerfreundlichkeit können Sie unter anderem verschiedene Arten von Webdatenverkehr an verschiedene Serverressourcen weiterleiten. In diesem Artikel erfahren Sie, wie Sie die Azure-Befehlszeilenschnittstelle verwenden, um Application Gateway-Routing für verschiedene Arten von Datenverkehr aus Ihrer Anwendung einzurichten und zu konfigurieren. Der Datenverkehr wird dann auf der Grundlage der URL an verschiedene Serverpools weitergeleitet.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Erstellen einer Ressourcengruppe für die benötigten Netzwerkressourcen
- Erstellen der Netzwerkressourcen
- Erstellen eines Anwendungsgateways für den Datenverkehr aus Ihrer Anwendung
- Angeben von Serverpools und Routingregeln für die verschiedenen Arten von Datenverkehr
- Erstellen einer Skalierungsgruppe für jeden Pool, damit der Pool automatisch skaliert werden kann
- Testen, ob die verschiedenen Arten von Datenverkehr an den richtigen Pool weitergeleitet werden
Dieses Verfahren kann auch mit Azure PowerShell oder mit dem Azure-Portal durchgearbeitet werden.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für dieses Tutorial ist mindestens Version 2.0.4 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Erstellen einer Ressourcengruppe
Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mithilfe von az group create
eine Ressourcengruppe.
Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroupAG am Standort eastus erstellt.
az group create --name myResourceGroupAG --location eastus
Erstellen von Netzwerkressourcen
Erstellen Sie mithilfe von az network vnet create
ein virtuelles Netzwerk namens myVNet und ein Subnetz namens myAGSubnet. Fügen Sie dann mithilfe von az network vnet subnet create
ein Subnetz mit dem Namen myBackendSubnet hinzu, das von den Back-End-Servern benötigt wird. Erstellen Sie mithilfe von az network public-ip create
die öffentliche IP-Adresse myAGPublicIPAddress.
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
Erstellen des App-Gateways mit einer URL-Zuordnung
Verwenden Sie az network application-gateway create
, um ein Anwendungsgateway namens myAppGateway zu erstellen. Wenn Sie über die Azure-Befehlszeilenschnittstelle ein Anwendungsgateway erstellen, geben Sie Konfigurationsinformationen wie Kapazität, SKU und HTTP-Einstellungen an. Das Anwendungsgateway wird myAGSubnet und myAGPublicIPAddress zugewiesen.
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
Es kann einige Minuten dauern, bis das Anwendungsgateway erstellt wird. Nachdem das Anwendungsgateway erstellt wurde, sehen Sie diese neuen Features:
Funktion | Beschreibung |
---|---|
appGatewayBackendPool | Ein Anwendungsgateway muss über mindestens einen Back-End-Adresspool verfügen. |
appGatewayBackendHttpSettings | Hiermit wird angegeben, dass für die Kommunikation Port 80 und ein HTTP-Protokoll verwendet werden. |
appGatewayHttpListener | Der Standardlistener, der „appGatewayBackendPool“ zugeordnet ist. |
appGatewayFrontendIP | Weist „myAGPublicIPAddress“ zu „appGatewayHttpListener“ zu. |
rule1 | Die Standardroutingregel, die „appGatewayHttpListener“ zugeordnet ist. |
Hinzufügen von Back-End-Pools für Bilder und Videos sowie eines Ports
Fügen Sie Ihrem Anwendungsgateway mithilfe von az network application-gateway address-pool create
Back-End-Pools namens imagesBackendPool und videoBackendPool hinzu. Verwenden Sie az network application-gateway frontend-port create
, um den Front-End-Port für die Pools hinzuzufügen.
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
Hinzufügen eines Back-End-Listeners
Fügen Sie mithilfe von az network application-gateway http-listener create
den Back-End-Listener namens backendListener hinzu. Dieser ist zum Weiterleiten von Datenverkehr erforderlich.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Hinzufügen einer URL-Pfadzuordnung
URL-Pfadzuordnungen stellen sicher, dass bestimmte URLs an bestimmte Back-End-Pools weitergeleitet werden. Erstellen Sie mithilfe von az network application-gateway url-path-map create
und az network application-gateway url-path-map rule create
URL-Pfadzuordnungen namens imagePathRule und videoPathRule.
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
Hinzufügen einer Routingregel
Die Routingregel ordnet die URL-Zuordnungen dem von Ihnen erstellten Listener zu. Fügen Sie mithilfe von az network application-gateway rule create
eine Regel namens rule2 hinzu.
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
Erstellen von VM-Skalierungsgruppen
In diesem Artikel erstellen Sie drei VM-Skalierungsgruppen, die die drei erstellten Back-End-Pools unterstützen. Sie erstellen Skalierungsgruppen namens myvmss1, myvmss2 und myvmss3. Jede Skalierungsgruppe enthält zwei VM-Instanzen, auf denen Sie NGINX installieren.
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
Installieren von 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
Testen des Anwendungsgateways
Um die öffentliche IP-Adresse des Anwendungsgateways abzurufen, verwenden Sie az network public-ip show. Kopieren Sie die öffentliche IP-Adresse, und fügen Sie sie in die Adressleiste des Browsers ein. Beispiel: http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
oder http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Ändern Sie die URL in http://<IP-Adresse>:8080/images/test.html, und ersetzen Sie dabei <IP-Adresse> durch Ihre IP-Adresse. Die anschließende Anzeige sollte in etwa wie im folgenden Beispiel aussehen:
Ändern Sie die URL in http://<ip-address>:8080/video/test.html, und ersetzen Sie dabei <IP-Adresse> durch Ihre IP-Adresse. Die anschließende Anzeige sollte in etwa wie im folgenden Beispiel aussehen.
Bereinigen von Ressourcen
Entfernen Sie die Ressourcengruppe, das Anwendungsgateway und alle dazugehörigen Ressourcen, wenn Sie sie nicht mehr benötigen.
az group delete --name myResourceGroupAG
Nächste Schritte
Erstellen eines Anwendungsgateways mit Umleitung auf URL-Pfadbasis