教程:通过 Azure 门户使用基于路径的路由规则创建应用程序网关

创建应用程序网关时,可以使用 Azure 门户配置基于 URL 路径的路由规则。 本教程中使用虚拟机创建后端池。 然后创建路由规则,以确保 Web 流量到达池中的相应服务器。

在本文中,学习如何:

  • 创建应用程序网关
  • 为后端服务器创建虚拟机
  • 使用后端服务器创建后端池
  • 创建后端侦听器
  • 创建基于路径的路由规则

Diagram of application gateway URL routing example.

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

如果没有 Azure 订阅,可在开始前创建一个试用帐户

先决条件

  • Azure 订阅

创建虚拟机

本示例将创建三个虚拟机,用作应用程序网关的后端服务器。 还可以在虚拟机上安装 IIS,以验证应用程序网关是否按预期运行。

  1. 登录到 Azure 门户

  2. 在 Azure 门户中,选择“创建资源”。

  3. 在“常用”列表中选择“Windows Server 2016 Datacenter” 。

  4. 输入虚拟机的以下值:

    • 订阅 - 选择自己的订阅。
    • 资源组,选择“新建” ,然后键入“myResourceGroupAG”。
    • 虚拟机名称myVM1
    • 区域中国北部 2
    • 用户名:键入用户名
    • 密码:键入密码
  5. 选择“下一步:磁盘” 。

  6. 选择“下一步:网络”

  7. 对于“虚拟网络”,请选择“新建”,然后键入虚拟网络的以下值:

    • myVNet - 虚拟网络的名称。
    • 10.0.0.0/16 - 虚拟网络地址空间。
    • myBackendSubnet,第一个子网名称
    • 10.0.1.0/24 - 子网地址空间。
    • myAGSubnet - 第二个子网名称。
    • 10.0.0.0/24 - 子网地址空间。
  8. 选择“确定” 。

  9. 确保在“子网”下,选择了“myBackendSubnet”作为子网,然后选择“下一步: 管理”。

  10. 选择“禁用”以禁用启动诊断。

  11. 选择“查看 + 创建”,检查摘要页上的设置,然后选择“创建”。

  12. 再创建两个虚拟机 myVM2myVM3,然后将其置于 MyVNet 虚拟网络和 myBackendSubnet 子网。

安装 IIS

  1. 在 PowerShell 中使用以下命令登录 Azure 门户:

    Connect-AzAccount -Environment AzureChinaCloud
    
  2. 运行以下命令以在虚拟机上安装 IIS:

         $publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1");  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
    
        Set-AzVMExtension `
         -ResourceGroupName myResourceGroupAG `
         -Location chinanorth2 `
         -ExtensionName IIS `
         -VMName myVM1 `
         -Publisher Microsoft.Compute `
         -ExtensionType CustomScriptExtension `
         -TypeHandlerVersion 1.4 `
         -Settings $publicSettings
    
  3. 使用刚刚完成的步骤在其他虚拟机上安装 IIS。 使用“myVM2”和“myVM3”作为 Set-AzVMExtension 中的 VMName 值。

创建应用程序网关

  1. 选择 Azure 门户左侧菜单上的“创建资源”。

  2. 选择“网络”,然后在“特色”列表中选择“应用程序网关” 。

“基本信息”选项卡

  1. 在“基本信息”选项卡上,输入这些值作为以下应用程序网关设置:

    • 订阅:选择订阅。
    • 资源组:选择 myResourceGroupAG 作为资源组。
    • 应用程序网关名称:键入“myAppGateway”作为应用程序网关的名称。
    • 区域 - 选择“中国北部 2” 。
  2. 在“配置虚拟网络”下,选择“myVNet”作为虚拟网络的名称。

  3. 选择“myAGSubnet” 作为子网。

  4. 接受其他设置的默认值,然后选择“下一步: 前端”。

    Screenshot of Basics tab of Create application gateway page.

“前端”选项卡

  1. 在“前端”选项卡上,验证“IP 地址类型”是否设置为“公共” 。

    注意

    对于应用程序网关 v2 SKU,只能选择公共前端 IP 配置。 目前尚未为此 v2 SKU 启用专用前端 IP 配置。

  2. 为“公共 IP 地址”选择“新增”,输入“myAGPublicIPAddress”作为公共 IP 地址名称,然后选择“确定” 。

  3. 在完成时选择“下一步:后端

“后端”选项卡

后端池用于将请求路由到为请求提供服务的后端服务器。 后端池可以包含 NIC、虚拟机规模集、公共 IP、内部 IP、完全限定的域名 (FQDN) 和多租户后端(例如 Azure 应用服务)。

  1. 在“后端”选项卡上,选择“添加后端池” 。

  2. 在打开的“添加后端池”窗口中,输入以下值以创建空的后端池 :

    • 名称:输入“myBackendPool”作为后端池的名称。
  3. 在“目标”类型下,从下拉列表中选择“虚拟机” 。

  4. 在 “目标”下, 为 myVM1 选择网络接口 。

  5. 选择 添加

  6. 重复此步骤,添加“图片”后端池, myVM2 作为目标;添加“视频”后端池, myVM3 作为目标。

  7. 选择“添加”以保存后端池配置并返回到“后端”选项卡 。

  8. 在“后端” 选项卡上,选择“下一步: 配置”。

配置选项卡

在“配置”选项卡上,将连接使用传递规则创建的前端和后端池。

  1. 选择“传递规则”列中的“添加传递规则” 。

  2. 在打开的“添加传递规则”窗口中,输入“myRoutingRule”作为规则名称。

  3. 传递规则需要侦听器。 在“添加传递规则”窗口中的“侦听器”选项卡上,键入侦听器的以下值:

    • 侦听器名称:输入“myListener”作为侦听器名称。

    • 前端 IP:选择“公共”,以选择为前端创建的公共 IP 。

    • 端口:类型 8080

      接受“侦听器”选项卡上其他设置的默认值,然后选择“后端目标”选项卡以配置剩余的传递规则 。

  4. 在“后端目标”选项卡上,为“后端目标”选择“myBackendPool” 。

  5. 对于“HTTP 设置”,请选择“新建”以添加新的 HTTP 设置 。 HTTP 设置将决定传递规则的行为。

  6. 在打开的“添加 HTTP 设置”窗口中,为“HTTP 设置名称”输入“myHTTPSetting” 。 接受“添加 HTTP 设置”窗口中其他设置的默认值,然后选择“添加”以返回到“添加传递规则”窗口 。

  7. 在“基于路径的路由”下 ,选择“添加多个目标以创建基于路径的规则” 。

  8. 对于“路径”,请键入 /images/*。

  9. 对于“目标名称”,键入“Images”。

  10. 对于“HTTP 设置” ,选择“myHTTPSetting”

  11. 对于“后端目标” ,选择“图片” 。

  12. 选择 “添加”以保存路径规则,并返回“添加路由规则” 选项卡。

  13. 重复此步骤为视频添加其他规则。

  14. 选择“添加” 添加路由规则并返回“配置” 选项卡。

  15. 在完成时选择“下一步: 标记”,然后选择“下一步: 查看 + 创建”。

注意

不需要添加自定义 / * 路径规则来处理默认情况。 这会由默认后端池自动处理。

注意

通配符分隔符 * 仅在规则末尾使用。 有关详细信息和支持的基于路径的规则示例,请参阅基于 URL 路径的路由概述

“查看 + 创建”选项卡

复查“查看 + 创建”选项卡上的设置,然后选择“创建”以创建虚拟网络、公共 IP 地址和应用程序网关 。 Azure 可能需要数分钟时间来创建应用程序网关。 请等待部署成功完成,然后再前进到下一部分。

测试应用程序网关

  1. 选择“所有资源”,然后选择“myAppGateway”。

    Record application gateway public IP address

  2. 复制该公共 IP 地址,并将其粘贴到浏览器的地址栏。 例如 http://52.188.72.175:8080.

    Test base URL in application gateway

    端口 8080 上的侦听器将此请求路由到默认的后端池。

  3. 将 URL 更改为 http://<ip-address>:8080/images/test.htm,将 <ip-address> 替换为 myAppGateway 的公共 IP 地址,然后应会看到如以下示例所示的内容:

    Test images URL in application gateway

    端口 8080 上的侦听器将此请求路由到“图片” 后端池。

  4. 将 URL 更改为 http://<ip-address>:8080/video/test.htm,将 <ip-address> 替换为 myAppGateway 的公共 IP 地址,然后应会看到如以下示例所示的内容:

    Test video URL in application gateway

    端口 8080 上的侦听器将此请求路由到“视频” 后端池。

清理资源

不再需要时,请删除资源组及所有相关资源。 为此,请选择资源组,然后选择“删除资源组”。

后续步骤

在本教程中,你创建了一个使用基于路径的路由规则的应用程序网关。

若要详细了解应用程序网关中基于路径的路由,请参阅基于 URL 路径的路由概述

若要了解如何使用 Azure CLI 创建和配置应用程序网关以重定向 Web 流量,请继续学习下一篇教程。