Udostępnij za pomocą


Samouczek: Tworzenie bramy aplikacji z przekierowywaniem opartym na ścieżce URL za pomocą Azure CLI

Za pomocą interfejsu wiersza polecenia platformy Azure podczas tworzenia bramy aplikacji możesz skonfigurować reguły routingu oparte na ścieżkach URL. Podczas pracy z tym samouczkiem utworzysz pule zaplecza z użyciem zestawów skalowania maszyn wirtualnych. Następnie utworzysz reguły routingu oparte na adresach URL, aby zapewnić przekierowywanie ruchu internetowego do odpowiedniej puli serwera zaplecza.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Konfigurowanie sieci
  • Tworzenie bramy aplikacji
  • Dodawanie odbiorników i reguł routingu
  • Tworzenie zestawów skalowania maszyn wirtualnych dla pul back-end

Poniższy przykład pokazuje ruch w witrynie, pochodzący z portów 8080 i 8081, skierowany do tych samych pul zaplecza:

Diagram przedstawiający przykład routingu adresów URL bramy aplikacji.

Jeśli chcesz, możesz wykonać kroki tego samouczka przy użyciu programu Azure PowerShell.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

  • Ten samouczek wymaga wersji 2.0.4 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Tworzenie grupy zasobów

Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Utwórz grupę zasobów za pomocą polecenia az group create.

W poniższym przykładzie pokazano sposób tworzenia grupy zasobów o nazwie myResourceGroupAG w lokalizacji eastus.

az group create --name myResourceGroupAG --location eastus

Tworzenie zasobów sieciowych

Utwórz sieć wirtualną o nazwie myVNet i podsieć o nazwie myAGSubnet przy użyciu polecenia az network vnet create. Następnie możesz dodać podsieć o nazwie myBackendSubnet wymaganą przez serwery zaplecza przy użyciu polecenia az network vnet subnet create. Utwórz publiczny adres IP o nazwie myAGPublicIPAddress przy użyciu polecenia 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

Tworzenie bramy aplikacji

Użyj polecenia az network application-gateway create w celu utworzenia bramy aplikacji o nazwie myAppGateway. Podczas tworzenia bramy aplikacji za pomocą Azure CLI należy podać informacje o konfiguracji, takie jak wydajność, SKU i ustawienia protokołu HTTP. Brama aplikacji jest przypisywana do wcześniej utworzonej podsieci myAGSubnet i adresu myPublicIPAddress.

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

Tworzenie bramy aplikacji może potrwać kilka minut. Po utworzeniu bramy aplikacji możesz zauważyć następujące nowe funkcje:

  • appGatewayBackendPool — brama aplikacji musi mieć co najmniej jedną pulę adresów zaplecza.
  • appGatewayBackendHttpSettings — określa, że port 80 i protokół HTTP są używane do komunikacji.
  • appGatewayHttpListener — domyślny odbiornik skojarzony z pulą appGatewayBackendPool.
  • appGatewayFrontendIP — przypisuje adres myAGPublicIPAddress do odbiornika appGatewayHttpListener.
  • rule1 — domyślna reguła routingu skojarzona z odbiornikiem appGatewayHttpListener.

Dodawanie pul zaplecza i portów

Możesz dodać do bramy aplikacji pule adresów zaplecza o nazwach imagesBackendPool i videoBackendPool za pomocą polecenia az network application-gateway address-pool create. Porty frontonu możesz dodać do pul za pomocą polecenia 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 bport

az network application-gateway frontend-port create \
  --port 8081 \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --name rport

Dodaj odbiorniki i reguły

Dodawanie odbiorników

Dodaj odbiorniki warstwy zaplecza o nazwach backendListener i redirectedListener, które są potrzebne do przekierowywania ruchu, używając polecenia az network application-gateway http-listener create.

az network application-gateway http-listener create \
  --name backendListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port bport \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

az network application-gateway http-listener create \
  --name redirectedListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port rport \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

Dodawanie domyślnej mapy ścieżek URL

Mapy ścieżek URL upewniają się, że określone adresy URL są kierowane do określonych pul serwerowych. Możesz utworzyć mapy ścieżek URL o nazwach imagePathRule i videoPathRule przy użyciu poleceń az network application-gateway url-path-map create i az network application-gateway url-path-map rule create

az network application-gateway url-path-map create \
  --gateway-name myAppGateway \
  --name urlpathmap \
  --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 urlpathmap \
  --paths /video/* \
  --address-pool videoBackendPool

Dodawanie konfiguracji przekierowania

Korzystając z polecenia az network application-gateway redirect-config create, możesz skonfigurować przekierowanie dla odbiornika.

az network application-gateway redirect-config create \
  --gateway-name myAppGateway \
  --name redirectConfig \
  --resource-group myResourceGroupAG \
  --type Found \
  --include-path true \
  --include-query-string true \
  --target-listener backendListener

Dodaj mapę ścieżek URL przekierowania

az network application-gateway url-path-map create \
  --gateway-name myAppGateway \
  --name redirectpathmap \
  --paths /images/* \
  --resource-group myResourceGroupAG \
  --redirect-config redirectConfig \
  --rule-name redirectPathRule

Dodawanie reguł routingu

Reguły routingu kojarzą mapy ścieżek URL z utworzonymi odbiornikami. Przy użyciu polecenia az network application-gateway rule create możesz dodać reguły o nazwach defaultRule i redirectedRule.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name defaultRule \
  --resource-group myResourceGroupAG \
  --http-listener backendListener \
  --rule-type PathBasedRouting \
  --url-path-map urlpathmap \
  --address-pool appGatewayBackendPool \
  --priority 100

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name redirectedRule \
  --resource-group myResourceGroupAG \
  --http-listener redirectedListener \
  --rule-type PathBasedRouting \
  --url-path-map redirectpathmap \
  --address-pool appGatewayBackendPool \
  --priority 100

Utwórz zestawy skalowania maszyn wirtualnych

W tym przykładzie tworzysz trzy zestawy do skalowania maszyn wirtualnych, które obsługują trzy utworzone pule zasobów zaplecza. Utworzone zestawy skalowania będą miały nazwy myvmss1, myvmss2 i myvmss3. Każdy zestaw skalowania zawiera dwa wystąpienia maszyny wirtualnej, na których instalujesz NGINX.

Zastąp <azure-user> i <password> wybraną nazwą użytkownika i hasłem.

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 <azure-user> \
    --admin-password <password> \
    --instance-count 2 \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --vm-sku Standard_DS2 \
    --upgrade-policy-mode Automatic \
    --app-gateway myAppGateway \
    --backend-pool-name $poolName
done

Instalowanie serwera 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

Testowanie bramy aplikacji

Aby uzyskać publiczny adres IP bramy aplikacji, użyj polecenia az network public-ip show. Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki. Na przykład http://40.121.222.19, http://40.121.222.19:8080/images/test.htm, http://40.121.222.19:8080/video/test.htm lub http://40.121.222.19:8081/images/test.htm.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Testowanie podstawowego adresu URL w bramie aplikacji

Zmień adres URL na http://<ip-address>:8080/images/test.html, zastępując <ip-address> swoim adresem IP, a powinieneś zobaczyć coś podobnego do następującego przykładu:

Testowanie adresu URL obrazów w bramie aplikacji

Zmień adres URL na http://<ip-address>:8080/video/test.html, zamieniając <ip-address> na swój adres IP, a powinno pojawić się coś podobnego do poniższego przykładu:

Testowanie adresu URL filmu w bramce aplikacji

Teraz zmień adres URL na http://<ip-address>:8081/images/test.htm, zastępując <ip-address> swoim adresem IP, a powinieneś zobaczyć ruch przekierowany z powrotem do puli obrazów backendu pod adresem http://<ip-address>:8080/images.

Czyszczenie zasobów

Gdy grupa zasobów, brama aplikacji i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć.

az group delete --name myResourceGroupAG

Następne kroki