Több webhelyet üzemeltető application gateway létrehozása az Azure CLI használatával
Az Azure CLI használatával konfigurálhatja több webhely üzemeltetését, amikor alkalmazásátjárót hoz létre. Ebben a cikkben a háttércímkészleteket definiálja virtuálisgép-méretezési csoportok használatával. Ezután az Ön tulajdonában lévő tartományok alapján konfigurálhat figyelőket és szabályokat a webes forgalom a készletekben lévő megfelelő kiszolgálókra irányításához. Ez a cikk feltételezi, hogy ön több tartomány tulajdonosa, és példákat használ www.contoso.com és www.fabrikam.com.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- A hálózat beállítása
- Application Gateway létrehozása
- Háttérbeli figyelők létrehozása
- Útválasztási szabályok létrehozása
- Virtuálisgép-méretezési csoportok létrehozása a háttérkészletekkel
- CNAME rekord létrehozása a tartományban
Tetszés szerint az Azure PowerShell használatával végezheti el ezt az eljárást.
If you don't have an Azure subscription, create an Azure free account before you begin.
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ó, amelybe 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 virtuális hálózatot és a myAGSubnet nevű alhálózatot az az network vnet create paranccsal. Ezután hozzáadhatja a háttérkiszolgálók számára szükséges alhálózatot az az network vnet subnet create paranccsal. Hozza létre a myAGPublicIPAddress elnevezésű 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
Application Gateway létrehozása
Az az network application-gateway create paranccsal létrehozhatja az alkalmazásátjárót. 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 alkalmazásátjáró a korábban létrehozott myAGSubnet alhálózathoz és myAGPublicIPAddress IP-címhez lesz 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 10
Az alkalmazásátjáró létrehozása néhány percig is eltarthat. Az alkalmazásátjáró létrehozása után a következő új funkcióit láthatja:
- appGatewayBackendPool – Az Application Gatewayeknek legalább egy háttércímkészlettel kell rendelkezniük.
- appGatewayBackendHttpSettings – Meghatározza, hogy a kommunikációhoz a rendszer a 80-as portot és egy HTTP-protokollt használ.
- 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.
A háttérkészletek hozzáadása
Adja hozzá a háttérkiszolgálókhoz szükséges háttérkészleteket az az network application-gateway address-pool create használatával
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
Figyelők hozzáadása
Adjon hozzá olyan figyelőket, amelyek a forgalom irányításához szükségesek az az network application-gateway http-listener create használatával.
Megjegyzés:
Az Application Gateway vagy a WAF v2 termékváltozatával figyelőnként legfeljebb 5 gazdagépnevet konfigurálhat, és helyettesítő karaktereket is használhat a gazdagép nevében. További információért tekintse meg a helyettesítő karakterek gazdagépnevét a figyelőben .
Ha több gazdagépnevet és helyettesítő karaktert szeretne használni egy figyelőben az Azure CLI használatával, ahelyett--host-name
, hogy a figyelőt használva használhassa--host-names
. A gazdagépnevekkel legfeljebb öt gazdagépnevet említhet szóközzel elválasztott értékként. Például: --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
Útválasztási szabályok hozzáadása
A szabályok feldolgozása a listában szereplő sorrendben történik, ha a szabály prioritási mezője nincs használatban. A forgalom a specifikusságtól függetlenül egyező első szabály használatával lesz irányítva. Ha például egy adott porton egy alapszintű figyelőt használó és egy többhelyes figyelőt használó szabály is aktív, a többhelyes figyelővel rendelkező szabályt az alapszintű figyelővel rendelkező elé kell venni, hogy a többhelyes szabály a várakozásnak megfelelően működjön.
Ebben a példában két új szabályt hoz létre, és törli az application gateway telepítésekor létrehozott alapértelmezett szabályt. A szabályt az az network application-gateway rule create paranccsal adhatja hozzá.
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
Prioritás hozzáadása útválasztási szabályokhoz
Annak érdekében, hogy a pontosabb szabályok előbb feldolgozásra kerülnek, használja a szabály prioritási mezőjét annak biztosítására, hogy magasabb prioritással rendelkezzenek. A szabály prioritási mezőjét minden meglévő kérelem-útválasztási szabályhoz be kell állítani, és a később létrehozott új szabálynak is rendelkeznie kell egy szabály prioritási értékével.
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
Virtuálisgép-méretezési csoportok létrehozása
Ebben a példában három virtuálisgép-méretezési csoportot hoz létre, amelyek támogatják az Application Gateway három háttérkészletét. A létrehozott méretezési csoportok neve myvmss1, myvmss2 és myvmss3. Minden méretezési csoport két virtuálisgép-példányt tartalmaz, amelyekre az IIS-t telepíti.
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
Az NGINX telepítése
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
CNAME rekord létrehozása a tartományban
Az alkalmazásátjáró nyilvános IP-címmel történő létrehozása után lekérheti a DNS-címet, és a segítségével létrehozhat egy CNAME rekordot a tartományban. Az alkalmazásátjáró DNS-címét az az network public-ip show paranccsal kérheti le. Másolja a DNSSettings fqdn értékét, és használja a létrehozandó CNAME rekord értékeként.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Az A-rekordok használata nem ajánlott, mert a VIP megváltozhat az Application Gateway újraindításakor.
Az alkalmazásátjáró tesztelése
Adja meg a tartománya nevét a böngésző címsorában. Mint http://www.contoso.com.
Változtassa meg a címet a másik tartományára. Ekkor az eredmény a következő példához hasonló:
Clean up resources
Ha már nincs rá 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ú útválasztási szabályokkal