Oktatóanyag: Alkalmazásátjáró létrehozása URL-alapú átirányítással az Azure CLI használatával

Az Azure CLI használatával URL-alapú útválasztási szabályokat konfigurálhat alkalmazásátjárók létrehozásakor. Ebben az oktatóanyagban háttérkészleteket hoz létre a Virtual Machine Scale Sets használatával. Ezután URL-útválasztási szabályokat hoz létre, amelyek biztosítják a webes forgalom átirányítását a megfelelő háttérkészletekre.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • A hálózat beállítása
  • Application Gateway létrehozása
  • Figyelők és útválasztási szabályok hozzáadása
  • Virtuálisgép-méretezési csoportok létrehozása a háttérkészletekhez

A következő példában a 8080-as és a 8081-es portról egyaránt érkezik webhelyforgalom, amely ugyanazokra a háttérkészletekre lesz átirányítva:

URL routing example

Igény szerint az oktatóanyag az Azure PowerShell használatával is elvégezhető.

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

  • Ehhez az oktatóanyaghoz az Azure CLI 2.0.4-es vagy újabb verziója szükséges. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Hozzon létre egy erőforráscsoportot az az group create paranccsal.

A következő példában létrehozunk egy myResourceGroupAG nevű erőforráscsoportot az eastus helyen.

az group create --name myResourceGroupAG --location eastus

Hálózati erőforrások létrehozása

Hozza létre a myVNet nevű virtuális hálózatot és a myAGSubnet nevű alhálózatot az az network vnet create paranccsal. Ezután hozzáadhatja a háttérkiszolgálók számára szükséges myBackendSubnet nevű alhálózatot az az network vnet subnet create paranccsal. Hozza létre a myAGPublicIPAddress elnevezésű nyilvános IP-címet az az network public-ip create paranccsal.

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

Application Gateway létrehozása

Az az network application-gateway create paranccsal hozza létre a myAppGateway alkalmazásátjárót. Amikor az Azure CLI-vel hoz létre egy Application Gatewayt, meg kell adnia bizonyos konfigurációs adatokat, például a kapacitást, az SKU-t, valamint a HTTP-beállításokat. Az application gateway hozzá van rendelve a korábban létrehozott myAGSubnethez és myPublicIPAddresshez .

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

Az alkalmazásátjáró létrehozása néhány percig is eltarthat. Az alkalmazásátjáró létrehozását követően a következő új funkciók láthatóak:

  • appGatewayBackendPool – Az Application Gatewayeknek legalább egy háttércímkészlettel kell rendelkezniük.
  • appGatewayBackendHttpSettings – Meghatározza, hogy a kommunikációhoz a rendszer a 80-as portot és egy HTTP-protokollt használ.
  • appGatewayHttpListener – Az appGatewayBackendPool készlethez társított alapértelmezett figyelő.
  • appGatewayFrontendIP – Hozzárendeli a myAGPublicIPAddress IP-címet az appGatewayHttpListener figyelőhöz.
  • rule1 – Az appGatewayHttpListener figyelőhöz rendelt alapértelmezett útválasztási szabály.

Háttérkészletek és portok hozzáadása

Az imagesBackendPool és a videoBackendPool nevű háttércímkészleteket az az network application-gateway address-pool create paranccsal adhatja hozzá az alkalmazásátjáróhoz. Az előtérbeli portokat az az network application-gateway frontend-port create paranccsal adhatja hozzá a készletekhez.

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

Figyelők és szabályok hozzáadása

Figyelők hozzáadása

Adja hozzá a forgalom irányításához szükséges backendListener és redirectedListener nevű háttérfigyelőket az az network application-gateway http-listener create paranccsal.

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

Alapértelmezett URL-útvonaltérkép hozzáadása

Az URL-útvonaltérképek biztosítják, hogy adott URL-címek adott háttérkészletekhez legyenek irányítva. Létrehozhatja az imagePathRule és a videoPathRule nevű URL-útvonaltérképet az az network application-gateway url-path-map create és az az network application-gateway url-path-map rule create paranccsal.

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

Átirányítási konfiguráció hozzáadása

A figyelő átirányítását az az network application-gateway redirect-config create paranccsal konfigurálhatja.

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

Átirányítási URL-útvonaltérkép hozzáadása

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

Útválasztási szabályok hozzáadása

Az útválasztási szabályok az URL-útvonaltérképeket a létrehozott figyelőkhöz társítják. A defaultRule és a redirectedRule nevű szabályt az az network application-gateway rule create paranccsal adhatja hozzá.

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

Virtuálisgép-méretezési csoportok létrehozása

Ebben a példában három virtuálisgép-méretezési csoportot hoz létre, amelyek támogatják a három létrehozott háttérkészletet. A létrehozott méretezési csoportok neve myvmss1, myvmss2 és myvmss3. Minden méretezési csoport két virtuálisgép-példányt tartalmaz, amelyeken az NGINX-et telepíti.

Cserélje le <az Azure-felhasználót> és <a jelszót> egy tetszőleges felhasználónévre és jelszóra.

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

Az NGINX telepítése

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

Az alkalmazásátjáró tesztelése

Az alkalmazásátjáró nyilvános IP-címének lekéréséhez használja az az network public-ip show parancsot. Másolja a nyilvános IP-címet, majd illessze be a böngésző címsorába. Például: http://40.121.222.19, http://40.121.222.19:8080/images/test.htm, http://40.121.222.19:8080/video/test.htm vagy http://40.121.222.19:8081/images/test.htm.

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

Test base URL in application gateway

Módosítsa az URL-címet http://< ip-address>:8080/images/test.html értékre, cserélje le az IP-címet ip-címre<>, és az alábbi példához hasonlót kell látnia:

Test images URL in application gateway

Módosítsa az URL-címet http://< ip-address>:8080/video/test.html értékre, cserélje le az IP-címet ip-címre<>, és az alábbi példához hasonlót kell látnia:

Test video URL in application gateway

Most módosítsa az URL-címet http://< ip-address>:8081/images/test.htm értékre, cserélje le az IP-címet ip-címre><, és a forgalom vissza lesz irányítva a képek háttérkészletére http://< ip-address>:8080/images címen.

Clean up resources

Ha már nincs rá szükség, távolítsa el az erőforráscsoportot, az alkalmazásátjárót és az összes kapcsolódó erőforrást.

az group delete --name myResourceGroupAG

Következő lépések