你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Front Door 中的规则集是什么?

规则集是一个自定义规则引擎,它将各种规则组合成一个单一的集。 可以将一个规则集与多个路由相关联。 规则集允许你自定义如何在 Azure Front Door 边缘上处理请求。

常见的支持方案

  • 实施安全性标头,以防止基于浏览器的漏洞攻击,例如 HTTP Strict-Transport-Security (HSTS)、X-XSS-Protection、Content-Security-Policy、X-Frame-Options 以及用于跨域资源共享 (CORS) 方案的 Access-Control-Allow-Origin 标头。 基于安全性的属性也可以用 Cookie 来定义。

  • 基于客户端设备类型,将请求路由到应用程序的移动或桌面版本。

  • 使用重定向功能将 301、302、307 和 308 重定向返回到客户端,以定向到新的主机名、路径、查询字符串或协议。

  • 基于传入请求动态修改路由的缓存配置。

  • 重写请求 URL 路径,并将请求转发到配置的源组中的相应源。

  • 添加、修改或删除请求/响应标头以隐藏敏感信息或通过标头捕获重要信息。

  • 支持使用服务器变量来动态更改请求头、响应头或 URL 重写路径/查询字符串。 例如,在加载新页面或发布表单时。 服务器变量目前仅在规则集操作中受支持。

体系结构

规则集在 Front Door 边缘上处理请求。 当请求到达 Front Door 终结点时,首先会处理 WAF,然后处理路由中配置的设置。 这些设置包括与路由关联的规则集。 规则集按照它们在路由配置下显示的顺序进行处理。 规则集中的规则也按照它们的显示顺序进行处理。 若要运行每个规则中的所有操作,必须满足规则中的所有匹配条件。 如果请求与规则集配置中的任何条件都不匹配,则只会应用默认路由设置。

如果选择了“停止评估剩余规则”,则不会运行与路由关联的任何剩余规则集。

示例

在下图中,首先会处理 WAF 策略。 然后,规则集配置将追加一个响应头。 如果满足匹配条件,则该头将更改缓存控制机制的最大期限。

显示规则集如何更改流经 Front Door 终结点的请求的响应头的示意图。

术语

使用 Front Door 规则集,可以创建任意的配置组合,每个组合由一组规则构成。 下面概述了在配置规则集时会遇到的一些有用术语。

  • 规则集:与一个或多个路由关联的一组规则。

  • 规则集规则:由最多 10 个匹配条件和 5 个操作组成的规则。 规则对规则集而言是本地的,无法将其导出以在其他规则集中使用。 可以在不同的规则集中创建相同的规则。

  • 匹配条件:可以配置许多匹配条件来分析传入请求。 一个规则最多可包含 10 个匹配条件。 将使用 AND 运算符来评估匹配条件。 条件中支持正则表达式。 可以在规则集匹配条件中找到匹配条件的完整列表。

  • 操作:操作指示 Front Door 如何根据匹配条件处理传入请求。 可以修改缓存行为,修改请求头/响应头,设置 URL 重写和 URL 重定向。 操作支持服务器变量。 一个规则最多可以包含五个操作。 可以在规则集操作中找到操作的完整列表。

ARM 模板支持

规则集可以使用 Azure 资源管理器模板进行配置。 有关示例,请参阅具有规则集的 Front Door 标准/高级版。 你可以通过使用匹配条件操作文档示例中包含的 JSON 或 Bicep 代码片段来自定义行为。

限制

有关配额限制的信息,请参阅 Front Door 限制、配额和约束

后续步骤

重要

Azure Front Door(经典版)将于 2027 年 3 月 31 日停用。 为了避免任何服务中断,请务必在 2027 年 3 月之前将 Azure Front Door(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Azure Front Door(经典版)停用

规则引擎配置允许自定义如何在 Front Door 边缘上处理 HTTP 请求,并为 Web 应用程序提供受控的行为。 Azure Front Door(经典)的规则引擎包含几个关键功能,例如:

  • 强制执行 HTTPS,确保所有最终用户都能够通过安全连接与内容进行交互。
  • 实施安全性标头,以防止基于浏览器的漏洞攻击,例如 HTTP Strict-Transport-Security (HSTS)、X-XSS-Protection、Content-Security-Policy、X-Frame-Options 以及用于跨域资源共享 (CORS) 方案的 Access-Control-Allow-Origin 标头。 基于安全性的属性也可以用 Cookie 来定义。
  • 基于请求标头内容、Cookie 或查询字符串的模式,将请求路由到应用程序的移动或桌面版本。
  • 使用重定向功能将 301、302、307 和 308 重定向返回到客户端,以定向到新的主机名、路径或协议。
  • 基于传入请求动态修改路由的缓存配置。
  • 重写请求 URL 路径,并将请求转接到配置的后端池中的相应后端。

体系结构

规则引擎在边缘处理请求。 当请求进入 Azure Front Door(经典)终结点时,首先会处理 WAF,然后处理与前端域关联的规则引擎配置。 如果已处理规则引擎配置,则表示满足匹配条件。 若要处理每个规则中的所有操作,必须满足规则中的所有匹配条件。 如果请求与规则引擎配置中的任何条件都不匹配,则处理默认路由配置。

例如,在下图中,规则引擎配置为追加响应头。 如果请求文件的扩展名为 .jpg,则该头会更改缓存控制机制的最大期限。

显示当请求的文件扩展名为 .jpg 时,规则引擎更改响应头中的缓存最大期限的示意图。

在这第二个示例中可以看到,规则引擎配置为在请求方设备的类型为“移动”时,将用户重定向到移动版网站。

显示当请求方设备的类型为“移动”时,规则引擎将用户重定向到移动版网站的示意图。

在这两个示例中,当不满足任何匹配条件时,会处理指定的路由规则。

术语

在 Azure Front Door(经典)中,可以创建规则引擎配置的许多组合,每个组合由一组规则构成。 下面概述了在配置规则引擎时会遇到的一些有用术语。

  • 规则引擎配置:应用于单个路由的一组规则。 每个配置限制为 25 个规则。 最多可以创建 10 个配置。
  • 规则引擎规则:由最多 10 个匹配条件和 5 个操作组成的规则。
  • 匹配条件:可以利用许多匹配条件来分析传入请求。 一个规则最多可包含 10 个匹配条件。 将使用 AND 运算符来评估匹配条件。 有关匹配条件的完整列表,请参阅规则匹配条件
  • 操作:操作规定如何处理传入请求 - 目前,请求/响应标头操作、转发、重定向和重写都是可以使用的操作。 一个规则最多可包含 5 个操作;但是,一个规则只能包含 1 个路由配置替代。 有关操作的完整列表,请参阅规则操作

后续步骤