练习 - 创建网站
在此练习中,你将在内部负载均衡器后面创建一对虚拟机并安装车辆登记 Web 应用。 还将配置一个虚拟网络,其中包含 Front Door 可用于以专用方式连接到虚拟机的专用终结点。 最后,你会将驾照续期网站部署到 Azure 应用服务实例,并同样与 Front Door 建立专用连接。
创建虚拟机并部署车辆登记站点
在浏览器中打开 Azure Cloud Shell,登录到一个目录,该目录具有对要在其中创建资源的订阅的访问权限。
在 Cloud Shell 中运行以下命令,创建用于存储资源组名称的变量,以及用于资源的资源组。 将
<resource group name>
替换为资源组的名称,将<location>
替换为要在其中部署资源的 Azure 区域。注意
如果需要查找位置名称,可以使用以下命令:az account list-locations -o table
RG=<resource group name> az group create --name $RG --location <location>
在右侧的 Cloud Shell 窗口中,运行以下命令。 此命令使用 Azure 命令行接口来创建名为
vehicleappvnet
的虚拟网络。 它是一个专用网络,提供 10.0.0.0 到 10.0.255.255 的地址范围。 该命令还会创建一个名为webServerSubnet
的子网,提供 10.0.1.0 到 10.0.1.255 的地址范围。 此子网将包含虚拟机。az network vnet create \ --resource-group $RG \ --name vehicleAppVnet \ --address-prefixes 10.0.0.0/16 \ --subnet-name webServerSubnet \ --subnet-prefixes 10.0.1.0/24
若要下载创建虚拟机的脚本,请运行以下命令。
git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
创建网络安全组 (NSG) 和 NSG 规则,以在创建过程中应用于 Web 服务器。
az network nsg create \ --resource-group $RG \ --name webNSG az network nsg rule create \ --resource-group $RG \ --nsg-name webNSG \ --name myNSGRuleHTTP \ --protocol '*' \ --direction inbound \ --source-address-prefix '*' \ --source-port-range '*' \ --destination-address-prefix '*' \ --destination-port-range 80 \ --access allow \ --priority 200
运行以下命令,为 Web 服务器创建并配置虚拟机。 虚拟机名为
webServer1
和webServer2
。 每个虚拟机都运行 Ubuntu Server。 使用用户名azureuser
为每台虚拟机创建管理用户帐户。 在每个虚拟机上安装车辆登记 Web 应用。第一个命令异步运行,以实现同时创建两个虚拟机。
az vm create \ --resource-group $RG \ --name webServer1 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh \ --no-wait az vm create \ --resource-group $RG \ --name webServer2 \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --public-ip-address "" \ --nsg webNSG \ --custom-data module-files/scripts/vmconfig.sh
运行以下命令,确认已成功创建两个虚拟机。
az vm list \ --resource-group $RG \ --show-details \ --output table
应该会看到与下面类似的输出。 请先确保两个虚拟机的“PowerState”均为“VM 正在运行”,然后再继续操作。
Name ResourceGroup PowerState PublicIps Fqdns Location Zones ------------ ----------------- ------------ ----------- ------- -------------- ------- webServer1 MyResourceGroup VM running southcentralus webServer2 MyResourceGroup VM running southcentralus
创建内部负载均衡器并将虚拟机添加到后端池
若要创建内部负载均衡器资源,请运行以下命令。
az network lb create \ --resource-group $RG \ --name webServerILB \ --sku standard \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool
若要创建运行状况探测来检查每个 VM 实例的可用性,请运行以下命令。
az network lb probe create \ --resource-group $RG \ --lb-name webServerILB \ --name webServerHealthProbe \ --protocol tcp \ --port 80
若要创建负载均衡规则以将流量分发到 Web 服务器,请运行以下命令。
az network lb rule create \ --resource-group $RG \ --lb-name webServerILB \ --name myHTTPRule \ --protocol tcp \ --frontend-port 80 \ --backend-port 80 \ --frontend-ip-name webServerIP \ --backend-pool-name webServerBackendPool \ --probe-name webServerHealthProbe \ --idle-timeout 15 \ --enable-tcp-reset true
若要将这两个 Web 服务器添加到内部负载均衡器的后端池,请运行以下命令。
az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer1 \ --nic-name webServer1VMNic \ --resource-group $RG az network nic ip-config address-pool add \ --address-pool webServerBackendPool \ --lb-name webServerILB \ --ip-config-name ipconfigwebServer2 \ --nic-name webServer2VMNic \ --resource-group $RG
创建专用链接服务和专用终结点
需要使用专用链接服务才能在 Front Door 与源资源之间建立专用通信。 专用终结点是 Front Door 的连接目标,用于通过 Microsoft 网络实现内部连接。
若要创建专用链接服务并将其与内部负载均衡器关联,请运行以下命令。 第一个命令禁用子网上的专用链接网络策略,以允许创建专用链接服务。
az network vnet subnet update \ --name webServerSubnet \ --resource-group $RG \ --vnet-name vehicleAppVnet \ --disable-private-link-service-network-policies true az network private-link-service create \ --resource-group $RG \ --name myPrivateLinkService \ --vnet-name vehicleAppVnet \ --subnet webServerSubnet \ --lb-name webServerILB \ --lb-frontend-ip-configs webServerIP
若要在虚拟网络中创建专用终结点,请运行以下命令。 自动批准与此专用终结点建立连接的请求。
export resourceid=$(az network private-link-service show \ --name myPrivateLinkService \ --resource-group $RG \ --query id \ --output tsv) az network private-endpoint create \ --connection-name myPEconnectiontoPLS \ --name myPrivateEndpoint \ --private-connection-resource-id $resourceid \ --resource-group $RG \ --subnet webServerSubnet \ --manual-request false \ --vnet-name vehicleAppVnet
你现在已创建运行车辆登记 Web 应用的虚拟机。 两个虚拟机完全相同,属于同一个虚拟网络。 还设置了专用链接服务和专用终结点,用于访问内部负载均衡器后的虚拟机。
创建应用服务和部署驾照更新站点
首先,运行以下命令,为网站生成唯一名称。
APPSERVICE="licenserenewal$RANDOM"
接下来,请运行以下命令,以创建 Web 应用要使用的应用服务计划。
az appservice plan create \ --resource-group $RG \ --name vehicleAppServicePlan \ --location eastus \ --sku FREE
最后,创建 Web 应用并部署驾照更新站点。
az webapp create \ --resource-group $RG \ --name $APPSERVICE \ --plan vehicleAppServicePlan \ --deployment-source-url https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway \ --deployment-source-branch appService
现在,我们将详细介绍如何配置 Front Door。