Compartir a través de

使用 Azure 应用程序网关执行基于参数的路径选择 - Azure 门户

本文介绍如何使用 Azure 门户配置 Azure 应用程序网关 v2 SKU 实例,以通过将 URL 重写功能与基于路径的路由相结合来执行基于参数的路径选择。

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

开始之前

要完成本文中的步骤,需要拥有应用程序网关 v2 SKU 实例。 v1 SKU 不支持 URL 重写和标头重写。 如果没有 v2 SKU,请在开始之前创建应用程序网关 v2 SKU 实例。

登录 Azure

使用 Azure 帐户登录到 Azure 门户

配置基于参数的路径选择

对于此示例,你有一个购物网站。 产品类别将作为 URL 中的查询字符串传递。 要根据查询字符串将请求路由到后端,请执行以下步骤。

  1. 创建路径映射。

    显示 URL 重写方案 1-1 的屏幕截图。

  2. 创建具有三条重写规则的重写集:

    • 第一条规则包含检查 query_string 变量是否为 category=shoes 的条件。 操作会将 URL 路径重写为 /listing1。 启用重新计算路径映射

    • 第二条规则包含检查 query_string 变量是否为 category=bags 的条件。 操作会将 URL 路径重写为 /listing2。 启用重新计算路径映射

    • 第三条规则包含检查 query_string 变量是否为 category=accessories 的条件。 操作会将 URL 路径重写为 /listing3。 启用重新计算路径映射

      显示 URL 重写方案 1-2 的屏幕截图。

  3. 将此重写集与上述基于路径的规则的默认路径相关联。

    显示 URL 重写方案 1-3 的屏幕截图。

如果用户请求 contoso.com/listing?category=any,则它与默认路径匹配,因为路径映射(/listing1、/listing2、/listing3)中的路径模式不匹配。 由于已将上述重写集与此路径相关联,因此系统会对此重写集进行计算。 由于查询字符串与此重写集中三条重写规则中的任何一项的条件均不匹配,因此不会执行重写操作。 该请求将会保持原样路由到与默认路径关联的后端(即 GenericList)。

如果用户请求 contoso.com/listing?category=shoes,则默认路径匹配。 在这种情况下,第一条规则中的条件是匹配的。 将会执行与该条件关联的操作,即将 URL 路径重写为 /listing1 并重新计算路径映射。 重新计算路径映射时,请求将会匹配与模式 /listing1 关联的路径。 该请求将路由到与此模式关联的后端(ShoesListBackendPool)。

注意

可以根据所定义的条件将此方案扩展到任何标头或 Cookie 值、URL 路径、查询字符串或服务器变量。 然后,可以根据这些条件路由请求。

要详细了解如何设置一些常见用例,请参阅常见的标头重写方案