规则集是一个自定义规则引擎,它将各种规则组合成一个单一的集。 可以将一个规则集与多个路由相关联。 规则集允许你自定义如何在 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 重写路径/查询字符串。 例如,在加载新页面或发布表单时。 服务器变量目前仅在规则集操作中受支持。
根据请求标头值填充或修改响应标头(例如,在 Access-Control-Allow-Origin 中添加与请求源标头相同的 FQDN)。
通过添加新的响应标头并删除原始响应标头,将云提供商生成的响应标头重命名为品牌特定的响应标头。
从传入查询字符串的键/值对中提取值(格式为 {http_req_arg_key1}),并使用该值重定向到目标主机。
利用 URL 重定向和重写中的 URL 路径段捕获,例如:从入站 URL
/abc/<tenantID>/<otherID>/index.html
路径中提取 tenantID,并通过在目标位置使用“{url_path:seg1}”格式将其插入 URL 路径的其他位置。
Architecture
规则集在 Front Door 边缘上处理请求。 当请求到达 Front Door 终结点时,首先会处理 WAF(Web 应用程序防火墙),然后处理路由中配置的设置。 这些设置包括与路由关联的规则集。 规则集按照它们在路由配置下显示的顺序进行处理。 规则集中的规则也按照它们的显示顺序进行处理。 若要运行每个规则中的所有操作,必须满足规则中的所有匹配条件。 如果请求与规则集配置中的任何条件都不匹配,则只会应用默认路由设置。
如果选择了“停止评估剩余规则”,则不会运行与路由关联的任何剩余规则集。
Example
在下图中,首先会处理 WAF 策略。 然后,规则集配置将追加一个响应头。 如果满足匹配条件,则该头将更改缓存控制机制的最大期限。
Terminology
使用 Front Door 规则集,可以创建任意的配置组合,每个组合由一组规则构成。 下面概述了在配置规则集时会遇到的一些有用术语。
规则集:一组与一个或多个 路由关联的规则。
规则集规则:由最多 10 个匹配条件和 5 个操作组成的规则。 规则对规则集而言是本地的,无法将其导出以在其他规则集中使用。 可以在不同的规则集中创建相同的规则。
匹配条件:可以配置许多匹配条件来分析传入请求。 一个规则最多可包含 10 个匹配条件。 使用 AND 运算符计算匹配条件。 条件中支持正则表达式。 可以在规则集匹配条件中找到匹配条件的完整列表。
操作:操作决定了 Front Door 如何根据匹配条件处理传入请求。 可以修改高速缓存行为,修改请求头/响应头,设置 URL 重写和 URL 重定向。 操作支持服务器变量。 一个规则最多可以包含五个操作。 可以在规则集操作中找到操作的完整列表。
ARM 模板支持
规则集可以使用 Azure 资源管理器模板进行配置。 有关示例,请参阅具有规则集的 Front Door 标准/高级版。 可以使用文档示例中包含的 JSON 或 Bicep 代码片段自定义行为,用于 匹配条件 和 动作。
Limitations
有关配额限制的信息,请参阅 Front Door 限制、配额和约束。
后续步骤
- 了解如何创建 Azure Front Door 配置文件。
- 了解如何配置第一个 规则集。