Megosztás a következőn keresztül:


Webes forgalom átirányítása az URL-cím alapján az Azure CLI használatával

A webes forgalmat kezelő informatikai rendszergazdaként szeretne segíteni az ügyfeleknek és a felhasználóknak a szükséges információk lehető leggyorsabb beszerzésében. Ennek az egyik módja, ha a különböző típusú webes forgalmakat különböző kiszolgáló-erőforrásokra irányítja. Ez a cikk bemutatja, hogyan állíthatja be és konfigurálhatja az Application Gateway útválasztását az Azure CLI használatával az alkalmazás különböző típusú forgalmához. Az útválasztás ezután URL-cím alapján különböző kiszolgálókészletekre irányítja a forgalmat.

URL-útválasztási példa

Ebben a cikkben az alábbiakkal ismerkedhet meg:

  • Erőforráscsoport létrehozása a szükséges hálózati erőforrásokhoz
  • Hálózati erőforrások létrehozása
  • Alkalmazásátjáró létrehozása az alkalmazásból érkező forgalom számára
  • Kiszolgálókészletek és útválasztásai szabályok meghatározása a különböző típusú forgalmakhoz
  • Méretezési csoport létrehozása az egyes készletekhez azok automatikus méretezésének megvalósításához
  • Teszt futtatása annak ellenőrzéséhez, hogy a forgalom különféle típusai a megfelelő készletekre irányulnak-e

Tetszés szerint ezt az eljárást az Azure PowerShell vagy az Azure Portal használatával hajthatja végre.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

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ó, amelyben 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 adjon hozzá egy myBackendSubnet nevű alhálózatot , amelyet a háttérkiszolgálók az network vnet subnet createigényelnek. Hozza létre a myAGPublicIPAddress nevű 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

Az alkalmazásátjáró létrehozása URL-címleképezéssel

Az az network application-gateway create paranccsal hozzon létre egy alkalmazásátjárót myAppGateway néven. 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 a myAGSubnethez és a myAGPublicIPAddresshez van rendelve.

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 több percig is eltarthat. Az alkalmazásátjáró létrehozását követően a következő új funkciók láthatóak:

Szolgáltatás Leírás
appGatewayBackendPool Az alkalmazásátjáróknak rendelkezniük kell legalább egy háttércímkészlettel.
appGatewayBackendHttpSettings Megadja, hogy a 80-s port és a HTTP protokoll használható-e a kommunikációhoz.
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.

Kép- és videó-háttérkészletek, valamint egy port hozzáadása

Adja hozzá az alkalmazásátjáróhoz az imagesBackendPool és a videoBackendPool nevű háttérkészleteket az az network application-gateway address-pool create paranccsal. Adja hozzá az előtérportot a készletekhez az az network application-gateway frontend-port create paranccsal.

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

Háttérfigyelő hozzáadása

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

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

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

Az URL-útvonaltérképek biztosítják, hogy adott URL-címek adott háttérkészletekre legyenek irányítva. Hozza létre az imagePathRule és a videoPathRule nevű URL-útvonaltérképeket 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 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

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

Az útválasztási szabály az URL-címtérképeket a létrehozott figyelőhöz társítja. Adjon hozzá egy rule2 nevű szabályt az az network application-gateway rule create paranccsal.

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

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

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

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

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 vagy http://40.121.222.19:8080/video/test.htm.

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

Az alap URL-cím tesztelése az alkalmazásátjáróban

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:

Képek URL-címének tesztelése az alkalmazásátjáróban

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.

Tesztvideó URL-címe az alkalmazásátjáróban

Az erőforrások eltávolítása

Ha már nincs rájuk 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

Alkalmazásátjáró létrehozása URL-alapú átirányítással