Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při vytváření aplikační brány můžete Azure CLI použít ke konfiguraci pravidel směrování podle adres URL. V tomto kurzu vytvoříte fondy back-end pomocí škálovacích sad virtuálních počítačů. Pak vytvoříte pravidla směrování adres URL, která zajistí přesměrování webového provozu na správný back-endový fond.
V tomto kurzu se naučíte:
- Nastavit síť
- Vytvořte aplikační bránu
- Přidat naslouchací prvky a pravidla směrování
- Vytvořit pro back-endové fondy škálovací sadu virtuálních počítačů
Na následujícím příkladu je vidět přesměrování webového provozu, který přichází ze dvou portů 8080 a 8081, na stejné back-endové fondy:
Pokud chcete, můžete k dokončení tohoto kurzu použít Azure PowerShell.
Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Tento kurz vyžaduje verzi 2.0.4 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Vytvoření skupiny zdrojů
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Vytvořte skupinu prostředků pomocí příkazu az group create.
V následujícím příkladu se vytvoří skupina prostředků s názvem myResourceGroupAG v lokalitě eastus.
az group create --name myResourceGroupAG --location eastus
Vytvoření síťových prostředků
Pomocí příkazu az network vnet create vytvořte virtuální síť s názvem myVNet a podsíť s názvem myAGSubnet. Potom můžete přidat podsíť s názvem myBackendSubnet, kterou potřebují back-endové servery. Použijte k tomu příkaz az network vnet subnet create. Pomocí příkazu az network public-ip create vytvořte veřejnou IP adresu s názvem 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
Vytvořte aplikační bránu
K vytvoření aplikační brány s názvem myAppGateway použijte příkaz az network application-gateway create. Při vytváření aplikační brány pomocí Azure CLI zadáte konfigurační údaje, jako je kapacita, SKU a nastavení HTTP. Aplikační brána je přiřazená k podsítě myAGSubnet a myPublicIPAddress , které jste vytvořili dříve.
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
Vytvoření aplikační brány může trvat několik minut. Po vytvoření aplikační brány se zobrazí tyto nové funkce:
- appGatewayBackendPool – aplikační brána musí mít aspoň jeden back-endový fond adres.
- appGatewayBackendHttpSettings – určuje, že se ke komunikaci používá port 80 a protokol HTTP.
- appGatewayHttpListener – výchozí naslouchací proces přidružený k appGatewayBackendPool.
- appGatewayFrontendIP – přiřadí myAGPublicIPAddress k appGatewayHttpListener.
- rule1 – výchozí pravidlo směrování přidružené k naslouchacímu procesu appGatewayHttpListener.
Přidání back-endových fondů a portů
K aplikační bráně můžete přidat back-endové adresní fondy pojmenované imagesBackendPool a videoBackendPool použitím az network application-gateway address-pool create. Front-endové porty pro bazény přidáváte příkazem 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
Přidejte listenery a pravidla
Přidat posluchače
Přidejte backendové posluchače s názvy backendListener a redirectedListener, které jsou potřebné pro směrování provozu pomocí příkazu 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
Přidejte výchozí mapu cesty URL
Mapy cest url zajišťují směrování konkrétních adres URL do konkrétních back-endových fondů. Vytvořte mapy cest adres URL pojmenované imagePathRule a videoPathRule. Použijte k tomu příkazy az network application-gateway url-path-map create a 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
Přidejte konfiguraci přesměrování
Ke konfiguraci přesměrování naslouchacího prvku použijte příkaz az network application-gateway redirect-config create.
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
Přidejte mapu cest přesměrování URL
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name redirectpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--redirect-config redirectConfig \
--rule-name redirectPathRule
Přidání pravidel směrování
Pravidla směrování přiřazují mapování cest URL k posluchačům, které jste vytvořili. Přidejte pravidla pojmenovaná defaultRule a redirectedRule příkazem az network application-gateway rule create.
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
Vytvořte škálovací sady virtuálních počítačů
V tomto příkladu vytvoříte tři škálovací sady virtuálních počítačů, které podporují tři vámi vytvořené back-endové fondy. Škálovací sady, které vytvoříte, se jmenují myvmss1, myvmss2 a myvmss3. Každá škálovací sada obsahuje dvě instance virtuálních počítačů, na které nainstalujete server NGINX.
Nahraďte <azure-user> a <heslo> uživatelským jménem a heslem podle vašeho výběru.
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
Instalace serveru 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
Otestování aplikační brány
K získání veřejné IP adresy aplikační brány použijte příkaz az network public-ip show. Zkopírujte veřejnou IP adresu a pak ji vložte do adresního řádku svého prohlížeče. Příklad: http://40.121.222.19, http://40.121.222.19:8080/images/test.htm, http://40.121.222.19:8080/video/test.htm nebo http://40.121.222.19:8081/images/test.htm.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Změňte adresu URL na http://< ip-address>:8080/images/test.html, nahraďte IP adresu IP< adresou >a měli byste vidět něco jako v následujícím příkladu:
Změňte adresu URL na http://< ip-address>:8080/video/test.html, nahraďte IP adresu IP< adresou >a měli byste vidět něco jako v následujícím příkladu:
Teď změňte adresu URL na http://< ip-address>:8081/images/test.htm, nahraďte ip adresu IP adresou <a měli byste vidět provoz přesměrovaný zpět do back-endového> fondu obrázků na http://< ip-address>:8080/images.
Vyčistěte zdroje
Až nebudete skupinu prostředků, aplikační bránu a další související prostředky potřebovat, odeberte je.
az group delete --name myResourceGroupAG