练习 - 创建网站

已完成

在此练习中,你将在内部负载均衡器后面创建一对虚拟机并安装车辆登记 Web 应用。 还将配置一个虚拟网络,其中包含 Front Door 可用于以专用方式连接到虚拟机的专用终结点。 最后,你会将驾照续期网站部署到 Azure 应用服务实例,并同样与 Front Door 建立专用连接。

创建虚拟机并部署车辆登记站点

  1. 在浏览器中打开 Azure Cloud Shell,登录到一个目录,该目录具有对要在其中创建资源的订阅的访问权限。

  2. 在 Cloud Shell 中运行以下命令,创建用于存储资源组名称的变量,以及用于资源的资源组。 将 <resource group name> 替换为资源组的名称,将 <location> 替换为要在其中部署资源的 Azure 区域。

    注意

    如果需要查找位置名称,可以使用以下命令:az account list-locations -o table

    RG=<resource group name>
    az group create --name $RG --location <location>
    
  3. 在右侧的 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
    
  4. 若要下载创建虚拟机的脚本,请运行以下命令。

    git clone https://github.com/MicrosoftDocs/mslearn-load-balance-web-traffic-with-application-gateway module-files
    
  5. 创建网络安全组 (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
    
  6. 运行以下命令,为 Web 服务器创建并配置虚拟机。 虚拟机名为 webServer1webServer2。 每个虚拟机都运行 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
    
  7. 运行以下命令,确认已成功创建两个虚拟机。

    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
    

创建内部负载均衡器并将虚拟机添加到后端池

  1. 若要创建内部负载均衡器资源,请运行以下命令。

    az network lb create \
        --resource-group $RG \
        --name webServerILB \
        --sku standard \
        --vnet-name vehicleAppVnet \
        --subnet webServerSubnet \
        --frontend-ip-name webServerIP \
        --backend-pool-name webServerBackendPool
    
  2. 若要创建运行状况探测来检查每个 VM 实例的可用性,请运行以下命令。

    az network lb probe create \
        --resource-group $RG \
        --lb-name webServerILB \
        --name webServerHealthProbe \
        --protocol tcp \
        --port 80
    
  3. 若要创建负载均衡规则以将流量分发到 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
    
  4. 若要将这两个 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 网络实现内部连接。

  1. 若要创建专用链接服务并将其与内部负载均衡器关联,请运行以下命令。 第一个命令禁用子网上的专用链接网络策略,以允许创建专用链接服务。

    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
    
  2. 若要在虚拟网络中创建专用终结点,请运行以下命令。 自动批准与此专用终结点建立连接的请求。

    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 应用的虚拟机。 两个虚拟机完全相同,属于同一个虚拟网络。 还设置了专用链接服务和专用终结点,用于访问内部负载均衡器后的虚拟机。

创建应用服务和部署驾照更新站点

  1. 首先,运行以下命令,为网站生成唯一名称。

    APPSERVICE="licenserenewal$RANDOM"
    
  2. 接下来,请运行以下命令,以创建 Web 应用要使用的应用服务计划。

    az appservice plan create \
        --resource-group $RG \
        --name vehicleAppServicePlan \
        --location eastus \
        --sku FREE
    
  3. 最后,创建 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。