Vytvoření aplikační brány, která hostuje více webů pomocí Azure CLI
Při vytvoření aplikační brány můžete Azure CLI použít ke konfiguraci hostování více webů. V tomto článku definujete fondy back-endových adres pomocí škálovacích sad virtuálních počítačů. Pak na základě domén, které vám patří, nakonfigurujete naslouchací procesy a pravidla, aby se webový provoz přesměroval na příslušné servery ve fondech. Tento článek předpokládá, že vlastníte více domén a používáte příklady www.contoso.com a www.fabrikam.com.
V tomto článku získáte informace o těchto tématech:
- Nastavit síť
- Vytvoření brány Application Gateway
- Vytvořit back-endové naslouchací procesy
- Vytvoření pravidel směrování
- Vytvoření škálovacích sad virtuálních počítačů s back-endovými fondy
- Vytvořit v doméně záznam CNAME
Pokud chcete, můžete tento postup dokončit pomocí Azure PowerShellu.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
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 Přihlášení 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 Využití rozšíření v 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 vytvoříte skupinu prostředků s názvem myResourceGroupAG v umístění 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íť a podsíť s názvem myAGSubnet. Potom můžete přidat podsíť, 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ření služby Application Gateway
K vytvoření aplikační brány můžete použít 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, skladová položka nebo nastavení HTTP. Aplikační brána je přiřazena k již vytvořené podsíti myAGSubnet a adrese myAGPublicIPAddress.
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 10
Vytvoření aplikační brány může trvat několik minut. Po vytvoření aplikační brány se zobrazí tyto její 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í adresu myAGPublicIPAddress naslouchacímu procesu appGatewayHttpListener.
- rule1 – výchozí pravidlo směrování přidružené k naslouchacímu procesu appGatewayHttpListener.
Přidání back-endových fondů
Přidejte back-endové fondy potřebné k zahrnutí back-endových serverů pomocí příkazu az network application-gateway address-pool create
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name contosoPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name fabrikamPool
Přidání naslouchacích procesů
Přidejte naslouchací procesy potřebné ke směrování provozu pomocí příkazu az network application-gateway http-listener create.
Poznámka:
S skladovou kartou Application Gateway nebo WAF v2 můžete také nakonfigurovat až 5 názvů hostitelů na naslouchací proces a v názvu hostitele můžete použít zástupné znaky. Další informace najdete v názvech hostitelů se zástupnými cardy v naslouchacím procesu .
Pokud chcete použít více názvů hostitelů a zástupných znaků v naslouchacím procesu pomocí Azure CLI, musíte místo toho --host-name
použít --host-names
. Pomocí názvů hostitelů můžete jako hodnoty oddělené mezerami zmínit až pět názvů hostitelů. Například --host-names "*.contoso.com *.fabrikam.com"
az network application-gateway http-listener create \
--name contosoListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.contoso.com
az network application-gateway http-listener create \
--name fabrikamListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.fabrikam.com
Přidání pravidel směrování
Pravidla se zpracovávají v pořadí, v jakém jsou uvedená, pokud se nepoužívá pole priority pravidla. Provoz se směruje pomocí prvního pravidla, které odpovídá bez ohledu na specificitu. Pokud máte například na stejném portu pravidlo založené na základním naslouchacím procesu a pravidlo založené na naslouchacím procesu pro více webů, musí být pravidlo s naslouchacím procesem pro více webů uvedeno před pravidlem se základním naslouchacím procesem, aby fungovalo podle očekávání.
V tomto příkladu vytvoříte dvě nová pravidla a odstraníte výchozí pravidlo vytvořené při nasazení aplikační brány. Pravidlo přidáte příkazem az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--address-pool contosoPool \
--priority 200
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--address-pool fabrikamPool \
--priority 100
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Přidání priority do pravidel směrování
Pokud chcete zajistit, aby byla nejprve zpracována konkrétnější pravidla, použijte pole priority pravidla, abyste zajistili, že mají vyšší prioritu. Pole priority pravidla musí být nastaveno pro všechna existující pravidla směrování požadavků a všechna nová pravidla vytvořená později musí mít také hodnotu priority pravidla.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--priority 200 \
--address-pool contosoPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--priority 100 \
--address-pool fabrikamPool
Vytvoření škálovacích sad 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 back-endové fondy ve službě Application Gateway. Š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 službu IIS.
for i in `seq 1 2`; do
if [ $i -eq 1 ]
then
poolName="contosoPool"
fi
if [ $i -eq 2 ]
then
poolName="fabrikamPool"
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_D1_v2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Instalace serveru NGINX
for i in `seq 1 2`; 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
Vytvořit v doméně záznam CNAME
Jakmile vytvoříte aplikační bránu s veřejnou IP adresou, získáte adresu DNS, kterou můžete použít k vytvoření záznamu CNAME ve své doméně. K získání adresy DNS aplikační brány použijte příkaz az network public-ip show. Zkopírujte hodnotu fqdn z objektu DNESettings a použijte ji jako hodnotu vytvořeného záznamu CNAME.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Použití záznamů A se nedoporučuje, protože virtuální IP adresa se může při restartování služby Application Gateway změnit.
Otestování aplikační brány
Do adresního řádku prohlížeče zadejte název domény. Například http://www.contoso.com.
Změňte adresu na jinou ze svých domén. Měli byste vidět něco podobného jako v následujícím příkladu:
Vyčištění prostředků
Až nebudete skupinu prostředků, aplikační bránu a další související prostředky potřebovat, odeberte je.
az group delete --name myResourceGroupAG
Další kroky
Vytvoření aplikační brány s pravidly směrování založenými na cestě URL