练习 - 测试应用程序网关

已完成

最后一步是测试应用程序网关,并验证它实施负载均衡且不会将流量定向到不可用的 Web 服务器。 我们还希望确保基于路径的路由正常工作。

Diagram showing the resources that have been deployed.

测试车辆登记 Web 应用的负载均衡

  1. 在 Cloud Shell 中运行以下命令,生成应用程序网关的根 URL:

    echo http://$(az network public-ip show \
      --resource-group $RG \
      --name appGatewayPublicIp \
      --query dnsSettings.fqdn \
      --output tsv)
    
  2. 使用 Web 浏览器,导航到前一命令返回的 URL 网站。 这是应用程序网关的地址。 验证显示了车辆登记 Web 应用的主页。 注意,你使用的 Web 服务器的名称显示在页脚中(“webServer1”或“webServer2”)。

    Screenshot showing an image of the vehicle registration web app.

  3. 在 Web 浏览器的地址栏中,选择“刷新”。 注意,你的会话现在应连接到另一个 Web 服务器。 在此配置中,应用程序网关使用轮循机制实施负载均衡。

  4. 选择“登记车辆”,输入车辆的详细信息,然后选择“登记”。

  5. 选择“刷新”几次。 请求应在服务器之间来回变换。

测试应用程序网关在服务器发生故障时的复原能力

  1. 在 Cloud Shell 中运行以下命令,停止“webServer1”的虚拟机并解除分配:

    az vm deallocate \
      --resource-group $RG \
      --name webServer1
    
  2. 在 Web 浏览器中,返回应用程序并选择“刷新”几次。 注意,Web 浏览器现在仅连接到“webServer2”。

  3. 在右侧的 Cloud Shell 窗口中,重启“webServer1”实例:

    az vm start \
      --resource-group $RG \
      --name webServer1
    
  4. 在 Web 浏览器中,返回 Web 应用程序并选择“刷新”几次。 可以看到,请求现在再次分散到两个 Web 服务器中。

你已验证 Web 应用程序正在运行。 应用程序网关利用负载均衡将请求分散到各服务器。 应用程序网关检测服务器是否故障,并且不会将请求路由到不可用的服务器。

测试基于 URL 路径的路由

现在我们来测试基于路径的路由。 记住,针对站点根路径且 URL 中包含“/VehicleRegistration/”的请求将路由到包含 VM 的“vmPool”,针对“/LicenseRenewal/”的请求将路由到包含应用服务的“appServicePool”。

你刚刚确认路由到根页面有效,因为你可以启动车辆登记页面。 我们来试试其他路由,看看它们是否有效。

  1. 现在,选择应用程序网关页面上的“登记车辆”。 此时应弹出车辆登记站点的车辆登记页面。 如果 URL 中有“/VehicleRegistration/”,则会路由到我们的车辆登记站点正在运行的“vmPool”。

    Screenshot showing a vehicle-registration web app.

  2. 现在,访问 http://<vehicleAppGateway>/LicenseRenewal/Create。 你应转到在应用服务上运行的驾照更新页面。 如果 URL 中有“/LicenseRenewal/”,则会路由到运行驾照更新站点的“appServicePool”。

    Screenshot showing an image of the license-renewal web app.

使用此配置,我们可以让这两个站点的所有用户都定向通过应用程序网关,为他们提供一个需要记住的根 URL。 我们可以在扩展网站时添加其他站点。

Web 应用程序防火墙

我们还在应用程序网关上启用了 WAF。 通过这样做,我们已向两个网站自动添加了安全保护。 这提供了一个坚实的保护层来预防常见漏洞,并有助于保护我们的基础结构和数据。