使用 Azure CLI 以應用程式閘道管理網路流量

針對您維護的伺服器,可以使用應用程式閘道來管理及保護其網路流量。 您可以使用 Azure CLI 來建立應用程式閘道,它使用虛擬機器擴展集作為後端伺服器。 在此範例中,擴展集會包含兩個虛擬機器執行個體。 會將擴展集新增至應用程式閘道的預設後端集區。

在本文中,您將學會如何:

  • 設定網路
  • 建立應用程式閘道
  • 建立包含預設後端集區的虛擬機器擴展集

如果您想要的話,可以使用 Azure PowerShell 完成本程序。

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

  • 本教學課程需要 2.0.4 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。

建立資源群組

資源群組是在其中部署與管理 Azure 資源的邏輯容器。 使用 az group create 建立資源群組。

下列範例會在 eastus 位置建立名為 myResourceGroupAG 的資源群組。

az group create --name myResourceGroupAG --location eastus

建立網路資源

使用 az network vnet create 建立名為 myVNet 的虛擬網路,以及名為 myAGSubnet 的子網路。 然後您可以使用 az network vnet subnet create 新增名為 myBackendSubnet 的子網路,後端伺服器需要該子網路。 使用 az network public-ip create 建立名為 myAGPublicIPAddress 的公用 IP 位址。

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 network application-gateway create,建立名為 myAppGateway 的應用程式閘道。 當您使用 Azure CLI 建立應用程式閘道時,需要指定設定資訊,例如容量、SKU 和 HTTP 設定。 應用程式閘道會指派給您先前建立的 myAGSubnet 和 myPublicIPAddress

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

可能需要幾分鐘的時間來建立應用程式閘道。 建立應用程式閘道後,您可以看到這些新功能:

  • appGatewayBackendPool - 應用程式閘道必須至少有一個後端位址集區。
  • appGatewayBackendHttpSettings - 指定以連接埠 80 和 HTTP 通訊協定來進行通訊。
  • appGatewayHttpListener - 與 appGatewayBackendPool 相關聯的預設接聽程式。
  • appGatewayFrontendIP - 將 myAGPublicIPAddress 指派給 appGatewayHttpListener
  • rule1 - 與 appGatewayHttpListener 相關聯的預設路由規則。

建立虛擬機器擴展集

在此範例中,您會建立虛擬機器擴展集,以在應用程式閘道中提供後端集區的伺服器。 擴展集中的虛擬機器會與 myBackendSubnet 和 appGatewayBackendPool 相關聯。 若要建立擴展集,請使用 az vmss create

az vmss create \
 --name myvmss \
 --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 appGatewayBackendPool

安裝 NGINX

現在,您可以將 NGINX 安裝在虛擬機器擴展集上,以便測試對後端集區的 HTTP 連線。

az vmss extension set \
 --publisher Microsoft.Azure.Extensions \
 --version 2.0 \
 --name CustomScript \
 --resource-group myResourceGroupAG \
 --vmss-name myvmss \
 --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'

測試應用程式閘道

若要取得應用程式閘道的公用 IP 位址,請使用 az network public-ip show。 將公用 IP 位址複製並貼到您瀏覽器的網址列。

az network public-ip show \
 --resource-group myResourceGroupAG \
 --name myAGPublicIPAddress \
 --query [ipAddress] \
 --output tsv

Test base URL in application gateway

清除資源

若不再需要,可移除資源群組、應用程式閘道和所有相關資源。

az group delete --name myResourceGroupAG --location eastus

下一步

使用 Web 應用程式防火牆來限制網路流量