你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
规则集操作
Azure Front Door 规则集由具有匹配条件和操作组合的规则组成。 本文详细介绍了可在规则集中使用的操作。 操作定义了应用于匹配条件所识别的请求类型的行为。 在一个规则集中,一个规则最多可以有五个操作。 Front Door 还支持规则集操作中的服务器变量。
以下操作可用于规则集中:
路由配置替代
路由配置替代操作用于替代请求的源组或缓存配置。 您可以选择替代或遵从路由中指定的源组配置。 但是,替代路由配置时,必须配置缓存。 否则,请求的缓存将被禁用。
你还可以针对特定请求替代文件的缓存方式,包括:
- 替代由源指定的缓存行为。
- 使用查询字符串参数生成请求的缓存密钥的方式。
- 生存时间 (TTL) 值,该值控制内容在缓存中保留多长时间。
属性
属性 | 支持的值 |
---|---|
替代源组 |
|
Caching |
|
当“替代源组”设置为“是”时,请设置以下属性:
属性 | 支持的值 |
---|---|
源组 | 请求应路由到的源组。 此设置会替代 Front Door 终结点路由中指定的配置。 |
转发协议 | Front Door 将请求转发到源时使用的协议。 支持的值为“仅限 HTTP”、“仅限 HTTPS”、“匹配传入的请求”。 此设置会替代 Front Door 终结点路由中指定的配置。 |
当“缓存”设置为“启用”时,请设置以下属性:
属性 | 支持的值 |
---|---|
查询字符串缓存行为 |
|
查询参数 | 查询字符串参数名称的列表,用逗号分隔。 仅当“查询字符串缓存行为”设置为“忽略指定的查询字符串”或“包括指定的查询字符串”时才设置此属性。 |
压缩 |
|
缓存行为 |
|
缓存持续时间 | 当缓存行为设置为 Override always 或 Override if origin missing 时,这些字段必须指定要使用的缓存持续时间。 最长持续时间为 366 天。 仅当“缓存行为”设置为“始终替代”或“如果缺少源值则替代”时才设置此属性。
|
示例
在此示例中,我们将所有匹配的请求路由到名为 MyOriginGroup
的源组,而不考虑 Front Door 终结点路由中的配置。
在此示例中,我们将设置缓存键,以包括一个名为 customerId
的查询字符串参数。 将启用压缩,并遵从源的缓存策略。
在此示例中,对于尚未指定缓存持续时间的匹配请求,我们将缓存过期时间替代为 6 小时。 Front Door 在确定缓存键时将忽略查询字符串,并将启用压缩。
修改请求标头
使用修改请求头操作,在请求发送到源时修改请求中的标头。
属性
属性 | 支持的值 |
---|---|
运算符 |
|
标头名称 | 要修改的标头名称。 |
标头值 | 要追加或覆盖的值。 |
示例
在此示例中,我们将值 AdditionalValue
追加到 MyRequestHeader
请求标头。 如果原点将响应标头设置为值 ValueSetByClient
,则在应用此操作后,请求标头的值将为 ValueSetByClientAdditionalValue
。
注意
某些 Azure Front Door 保留标头无法通过规则引擎操作进行修改,包括修改请求标头和响应标头的操作。 无法修改以下列表中的保留标头以及前缀为 x-ec
和 x-fd
的任何标头。
Accept-Ranges
Host
Connection
Content-Length
Transfer-Encoding
TE
Last-Modified
Keep-Alive
Expect
Upgrade
If-Modified-Since
If-Unmodified-Since
If-None-Match
If-Match
Range
If-Range
X-Ms-Via
X-Ms-Force-Refresh
X-MSEdge-Ref
Warning
Forwarded
Via
X-Forwarded-For
X-Forwarded-Proto
X-Forwarded-Host
X-Azure-RequestChain
X-Azure-FDID
X-Azure-RequestChainv2
X-Azure-Ref
修改响应标头
使用修改响应头操作来修改响应中存在的标头,然后将它们返回到客户端。
属性
属性 | 支持的值 |
---|---|
运算符 |
|
标头名称 | 要修改的标头名称。 |
标头值 | 要追加或覆盖的值。 |
示例
在此示例中,我们先从响应中删除名为 X-Powered-By
的标头,然后再将其返回到客户端。
注意
某些 Azure Front Door 保留标头无法通过规则引擎操作进行修改,包括修改请求标头和响应标头的操作。 无法修改以下列表中的保留标头以及前缀为 x-ec
和 x-fd
的任何标头。
Accept-Ranges
Host
Connection
Content-Length
Transfer-Encoding
TE
Last-Modified
Keep-Alive
Expect
Upgrade
If-Modified-Since
If-Unmodified-Since
If-None-Match
If-Match
Range
If-Range
X-Ms-Via
X-Ms-Force-Refresh
X-MSEdge-Ref
Warning
Forwarded
Via
X-Forwarded-For
X-Forwarded-Proto
X-Forwarded-Host
X-Azure-RequestChain
X-Azure-FDID
X-Azure-RequestChainv2
X-Azure-Ref
URL 重定向
使用 URL 重定向操作可将客户端重定向到新 URL。 从 Front Door 向客户端发送重定向响应。 Azure Front Door 支持使用 {url_path:seg#}
服务器变量动态捕获 URL 路径,并通过 {url_path.tolower}
或 {url_path.toupper}
将 URL 路径转换为小写或大写。 有关详细信息,请参阅服务器变量。
属性
属性 | 支持的值 |
---|---|
重定向类型 | 要返回给请求方的响应类型。
|
重定向协议 |
|
目标主机 | 要将请求重定向到的主机名。 留空会保留传入主机。 |
目标路径 | 要在重定向中使用的路径。 包含前导 / 。 留空会保留传入路径。 |
查询字符串 | 重定向中使用的查询字符串。 请勿包含前导 ? 。 留空会保留传入的查询字符串。 |
目标片段 | 要在重定向中使用的片段。 留空会保留传入片段。 |
示例
在此示例中,我们将请求重定向到 https://contoso.com/exampleredirection?clientIp={client_ip}
,同时保留片段。 使用 HTTP 临时重定向 (307)。 客户端的 IP 地址通过使用 client_ip
服务器变量来代替 URL 中的 {client_ip}
令牌。
URL 重写
使用 URL 重写操作可以重写路由到原点的请求的路径。 Azure Front Door 支持使用 {url_path:seg#}
服务器变量动态捕获 URL 路径,并通过 {url_path.tolower}
或 {url_path.toupper}
将 URL 路径转换为小写或大写。 有关详细信息,请参阅服务器变量。
属性
属性 | 支持的值 |
---|---|
源模式 | 定义要替换的 URL 路径中的源模式。 当前,源模式使用基于前缀的匹配。 若要匹配所有 URL 路径,请使用正斜杠(/ )作为源模式值。 |
目标 | 定义要在重写中使用的目标路径。 目标路径会覆盖源模式。 |
暂留不匹配的路径 | 如果设置为“是”,则会将源模式后面的剩余路径追加到新的目标路径。 |
示例
在此示例中,我们将所有请求重写到路径 /redirection
,并且不保留路径的其余部分。
重要
Azure Front Door(经典版)将于 2027 年 3 月 31 日停用。 为了避免任何服务中断,请务必在 2027 年 3 月之前将 Azure Front Door(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Azure Front Door(经典版)停用。
在 Azure Front Door(经典)中,一个规则引擎最多由 25 个规则组成,其中包含匹配条件和关联操作。 本文详细说明了可以在规则中定义的各项操作。
操作定义了要应用于一个或一组匹配条件的请求类型的行为。 在规则引擎配置中,一个规则最多可以有 10 个匹配条件和 5 个操作。 一个规则中只能有一个替代路由配置操作。
可在规则引擎配置中使用以下操作。
修改请求标头
使用这些操作可以修改发送到后端的请求中提供的标头。
Required fields
操作 | HTTP 标头名称 | 值 |
---|---|---|
附加 | 如果选择此选项并且规则匹配,则会将“标头名称”中指定的标头添加到请求并使用指定的值。 如果该标头已存在,则会将该值追加到现有值后面。 | 字符串 |
Overwrite | 如果选择此选项并且规则匹配,则会将“标头名称”中指定的标头添加到请求并使用指定的值。 如果该标头已存在,则指定的值将替代现有值。 | 字符串 |
删除 | 如果选择此选项,规则匹配,并且在规则中指定的标头存在,则会从请求中删除该标头。 | 字符串 |
修改响应标头
使用这些操作可以修改返回给客户端的响应中提供的标头。
Required fields
操作 | HTTP 标头名称 | 值 |
---|---|---|
附加 | 如果选择此选项并且规则匹配,则会通过使用指定的值将“标头名称”中指定的标头添加到响应 。 如果该标头已存在,则会将该“值”追加到现有值后面。 | 字符串 |
Overwrite | 如果选择此选项并且规则匹配,则会将“标头名称”中指定的标头添加到响应并使用指定的“值” 。 如果该标头已存在,则该“值”将替代现有值。 | 字符串 |
删除 | 如果选择此选项,规则匹配,并且在规则中指定的标头存在,则会从响应中删除该标头。 | 字符串 |
路由配置替代
路由类型:重定向
使用这些操作可将客户端重定向到一个新 URL。
Required fields
字段 | 说明 |
---|---|
重定向类型 | 重定向是一种将用户/客户端从一个 URL 发送到另一个 URL 的方式。 重定向类型会设置客户端使用的状态代码,以便理解重定向的目的。 可以选择以下重定向状态代码:已找到 (302)、已移动 (301)、临时重定向 (307) 和永久重定向 (308)。 |
重定向协议 | 根据传入请求保留协议,或者为重定向定义一个新协议。 例如,为 HTTP 到 HTTPS 的重定向选择“HTTPS”。 |
目标主机 | 设置此值可更改 URL 中用于重定向的主机名,或者保留传入请求中的主机名。 |
目标路径 | 根据传入请求保留路径,或者为重定向更新 URL 中的路径。 |
查询字符串 | 设置此值可替换传入请求 URL 中的任何现有查询字符串,或者保留查询字符串原始集。 |
目标片段 | 目标片段是“#”之后的 URL 部分,浏览器通常使用该段登录到页面的特定部分。 设置此值可将片段添加到重定向 URL。 |
路由类型:前进
使用这些操作可将客户端转发到新 URL。 这些操作还包含用于 URL 重写和缓存的子操作。
字段 | 说明 |
---|---|
后端池 | 选择要替代和服务请求的后端池,可以看到当前在 Front Door 配置文件中的所有预配置的后端池。 |
转发协议 | 此协议用于将请求转发到后端或匹配来自传入请求的协议。 |
URL 重写 | 在构造要转发到后端的 URL 重写请求时使用的路径。 |
缓存 | 为此传递规则启用缓存。 启用后,Azure Front Door 会缓存静态内容。 |
URL 重写
使用此设置可以配置可选的“自定义转发路径”,以便在构造要转发到后端的请求时使用。
字段 | 说明 |
---|---|
自定义转发路径 | 定义将请求转发到的路径。 |
Caching
使用这些设置来控制为包含查询字符串的请求缓存文件的方式。 是否根据所有参数或所选参数来缓存内容。 可以使用这些设置来覆盖生存时间 (TTL) 值,以控制内容在缓存中保留多长时间。 若要将缓存作为一项操作强制执行,请将“缓存”字段设置为“已启用”。强制缓存时,会出现以下选项:
缓存行为 | 说明 |
---|---|
忽略查询字符串 | 缓存资产后,所有后续请求将忽略查询字符串,直至缓存的资产过期。 |
使用查询字符串 | 具有唯一 URL 的每个请求(包括查询字符串)将被视为具有其自己的缓存的唯一资产。 |
忽略指定的查询字符串 | 缓存时将忽略在“查询参数”设置中列出的请求 URL 查询字符串。 |
包括指定的查询字符串 | 缓存时将使用“查询参数”设置中列出的请求 URL 查询字符串。 |
其他字段 | 说明 |
---|---|
动态压缩 | Front Door 可在边缘动态压缩内容,从而更快地做出响应。 |
查询参数 | 允许/禁止的参数的逗号分隔列表,用作缓存的基础。 |
使用默认缓存持续时间 | 设置为使用 Azure Front Door 默认缓存持续时间,或定义将忽略源响应指令的缓存持续时间。 |
后续步骤
- 了解如何配置你的第一个规则集。
- 详细了解规则集匹配条件。
- 详细了解 Azure Front Door 规则集。