Cvičení – vytvoření a konfigurace brány Application Gateway
Application Gateway naslouchá na koncovém bodu příchozích požadavků a pak tyto požadavky předává jednomu z webových serverů v back-endovém fondu. Poskytnete konfiguraci, která popisuje, jak Application Gateway směruje provoz a jak vyrovnávat zatížení požadavků mezi webovými servery.
V systému oddělení motorových vozidel je potřeba nakonfigurovat službu Application Gateway tak, aby vyrovnávat zatížení příchozích požadavků na webových serverech hostujících webovou aplikaci pro registraci vozidel. Musíte také nakonfigurovat službu Application Gateway tak, aby zjistila, kdy některý z webových serverů selhal, aby mohl přesměrovat provoz na pracovní server. Kromě toho potřebujete nakonfigurovat směrování na základě cesty, aby se požadavky na web pro registraci vozidel a web pro prodloužení platnosti oprávnění odesílaly do správných back-endových webových služeb.
V tomto cvičení vytvoříte instanci brány Application Gateway s back-endovým fondem webových serverů. Ověříte, že je brána Application Gateway nakonfigurovaná se správným naslouchacím procesem pro zpracování příchozích požadavků HTTP a směruje tyto požadavky na funkční webový server.
Konfigurace sítě pro Application Gateway
Spuštěním následujícího příkazu vytvořte privátní podsíť, která je požadována bránou Application Gateway. Tato podsíť má název
appGatewaySubnet
a je součástí virtuální sítěvehicleAppVnet
, kterou jste vytvořili v předchozím cvičení.az network vnet subnet create \ --resource-group $RG \ --vnet-name vehicleAppVnet \ --name appGatewaySubnet \ --address-prefixes 10.0.0.0/24
Spuštěním následujícího příkazu vytvořte veřejnou IP adresu a popisek DNS pro bránu Application Gateway. Popisek DNS musí být globálně jedinečný. Pro vygenerování popisku používá následující kód funkci
$RANDOM
.az network public-ip create \ --resource-group $RG \ --name appGatewayPublicIp \ --sku Standard \ --dns-name vehicleapp${RANDOM}
Vytvoření brány Application Gateway
Nejprve pomocí následujícího příkazu vytvořte zásadu WAF:
az network application-gateway waf-policy create \ --name waf-pol \ --resource-group $RG \ --type OWASP \ --version 3.2
Pomocí následujícího příkazu vytvořte aplikační bránu s názvem
vehicleAppGateway
s následující konfigurací:- Back-endový fond obsahující IP adresy virtuálních počítačů webového serveru.
- Brána firewall, která blokuje škodlivé požadavky – například požadavky používané útoky typů Injektáž SQL a Skriptování mezi weby
- Dočasný naslouchací proces, který naslouchá portu 8080. Tento naslouchací proces se v pozdějším kroku nahradí, ale vyžaduje se pro vytvoření služby Application Gateway.
- Pravidlo, které tyto požadavky směruje na back-endový fond (a vyrovnává zatížení)
az network application-gateway create \ --resource-group $RG \ --name vehicleAppGateway \ --sku WAF_v2 \ --capacity 2 \ --vnet-name vehicleAppVnet \ --subnet appGatewaySubnet \ --public-ip-address appGatewayPublicIp \ --http-settings-protocol Http \ --http-settings-port 8080 \ --private-ip-address 10.0.0.4 \ --frontend-port 8080 \ --waf-policy waf-pol \ --priority 100
Poznámka:
Provedení tohoto příkazu může trvat i několik minut.
Pokud chcete najít privátní IP adresy
webServer1
awebServer2
spusťte následující příkazy:az vm list-ip-addresses \ --resource-group $RG \ --name webServer1 \ --query [0].virtualMachine.network.privateIpAddresses[0] \ --output tsv
az vm list-ip-addresses \ --resource-group $RG \ --name webserver2 \ --query [0].virtualMachine.network.privateIpAddresses[0] \ --output tsv
Teď přidáme back-endové fondy pro oba weby. Nejprve vytvořte back-endový fond pro lokalitu pro registraci vozidel spuštěnou na virtuálních počítačích. Zajistěte, aby IP adresy v následujícím příkazu odpovídaly IP adresám z výstupů předchozích příkazů.
az network application-gateway address-pool create \ --gateway-name vehicleAppGateway \ --resource-group $RG \ --name vmPool \ --servers 10.0.1.4 10.0.1.5
Pokud chcete vytvořit back-endový fond pro web pro prodloužení licence spuštěný ve službě App Service, spusťte následující příkaz:
az network application-gateway address-pool create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name appServicePool \ --servers $APPSERVICE.azurewebsites.net
Pro port 80 vytvořte front-endový port:
az network application-gateway frontend-port create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name port80 \ --port 80
Pokud chcete zpracovávat požadavky na portu 80, vytvořte naslouchací proces:
az network application-gateway http-listener create \ --resource-group $RG \ --name vehicleListener \ --frontend-port port80 \ --frontend-ip appGatewayFrontendIP \ --gateway-name vehicleAppGateway
Přidání sondy stavu
Vytvořte sondu stavu, která bude testovat dostupnost webového serveru. Sonda stavu se spustí každých 15 sekund (
--interval 15
) a pošle požadavek HTTP GET na kořenovou cestu webové aplikace. Pokud webová aplikace nereaguje do 10 sekund (--timeout 10
), vyprší časový limit sondy. Webový server je označený jako v pořádku, pokud sonda třikrát po sobě selže (--threshold 3
).Protože jako jeden z back-endů používáte službu App Service, nastavíte hlavičku hostitele na název služby App Service. Bez tohoto nastavení služba App Service nereaguje a nebude se zobrazovat jako v pořádku.
az network application-gateway probe create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name customProbe \ --path / \ --interval 15 \ --threshold 3 \ --timeout 10 \ --protocol Http \ --host-name-from-http-settings true
Dále použijte sondu stavu, kterou jste vytvořili, vytvořte nastavení HTTP pro bránu:
az network application-gateway http-settings create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name appGatewayBackendHttpSettings \ --host-name-from-backend-pool true \ --port 80 \ --probe customProbe
Konfigurace směrování na základě cesty
Teď potřebujeme pro naši bránu Application Gateway nakonfigurovat směrování na základě cesty. Požadavky na /VehicleRegistration/ budeme směrovat na vmPool a požadavky na /LicenseRenewal/ budeme směrovat na appServicePool. Všechny požadavky bez kontextu URL se budou standardně směrovat na vmPool.
Mapování cest pro fond virtuálních počítačů vytvoříte spuštěním následujícího příkazu:
az network application-gateway url-path-map create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name urlPathMap \ --paths /VehicleRegistration/* \ --http-settings appGatewayBackendHttpSettings \ --default-http-settings appGatewayBackendHttpSettings \ --address-pool vmPool \ --default-address-pool vmPool
Pokud chcete vytvořit pravidlo mapování cest pro appServicePool, spusťte následující příkaz:
az network application-gateway url-path-map rule create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name appServiceUrlPathMap \ --paths /LicenseRenewal/* \ --http-settings appGatewayBackendHttpSettings \ --address-pool appServicePool \ --path-map-name urlPathMap
Teď vytvořte nové pravidlo směrování pomocí mapy cest, kterou jste vytvořili:
az network application-gateway rule create \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name appServiceRule \ --priority 200 \ --http-listener vehicleListener \ --rule-type PathBasedRouting \ --address-pool appServicePool \ --url-path-map urlPathMap
Poslední částí konfigurace je odstranění pravidla, které jsme vytvořili při počátečním nasazení služby Application Gateway. Už ho nepotřebujete, protože máte vlastní pravidlo.
az network application-gateway rule delete \ --resource-group $RG \ --gateway-name vehicleAppGateway \ --name rule1
Teď máte všechno nastavené a můžete to otestovat.