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.
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
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
- 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 create
igé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
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:
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.
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