规则相关功能的特性说明

更新时间:
复制 MD 格式

规则相关的功能在以下三个特性上存在差异。本文将对这三个特性的概念进行详细说明,并明确每个规则相关功能的特性差异。

规则配置和全局配置的生效优先级

  • 规则配置优先级高于全局配置:针对同一个功能,规则中配置的生效优先级更高。因此您可以在基础的通用功能配置上,通过规则来对特定的请求生效特定的功能配置。

    image

    以边缘节点缓存过期时间为例,若您在全局配置-边缘缓存过期时间中配置了边缘过期时间为12小时,并且在规则-配置边缘缓存过期时间中配置了/content下的资源在边缘节点上的过期时间为30天。那么当请求的资源路径在/content路径下时,边缘节点将把该资源的缓存过期时间调整为30天。对于请求的资源不在/content路径下,则在边缘节点中会统一调整缓存过期时间为12小时。

    image
  • 规则列表中顺序越靠前的优先级越高:针对同一个规则功能,规则执行的顺序是从上到下,依次执行。因此在实际业务使用中,当请求同时符合多个规则的触发条件时,您可以将您期望优先执行的动作通过拖拽image按钮调整至更靠上的位置。

    说明

    不同套餐支持的功能和规则条数不相同,各类型套餐的规则条数配额可参考:规则与套餐的配额说明。

    以缓存规则为例,如果您同时存在以下2条规则:

    规则1:/content路径下的资源过期时间为30天。
    规则2:后缀为.jpg的文件缓存时间为60天。
    • 若配置了规则1的顺序在上,规则2的顺序在下。对于不同的资源的在边缘节点上的缓存时间为:

      URL示例

      在/content路径下

      .jpg后缀

      缓存过期时间

      https://example.com/content/static/pic.jpg

      支持

      支持

      30天

      https://example.com/content/static/book.txt

      支持

      不支持

      30天

      https://example.com/static/pic.jpg

      不支持

      支持

      60天

      https://example.com/static/res/book.text

      不支持

      不支持

      不缓存

    • 若配置了规则2的顺序在上,规则1的顺序在下。对于不同的资源的在边缘节点上的缓存时间为:

      URI示例

      在/content路径下

      .jpg后缀

      缓存过期时间

      https://example.com/content/static/pic.jpg

      支持

      支持

      60天

      https://example.com/content/static/book.txt

      支持

      不支持

      30天

      https://example.com/static/pic.jpg

      不支持

      支持

      60天

      https://example.com/static/res/book.text

      不支持

      不支持

      不缓存

规则功能的可重入性

功能模块的可重入性指的是某个指令是否可以安全地在多个阶段、多次调用,并且每次调用的行为是独立的、叠加的、互不影响的。

可重入的功能

在一个请求的处理过程中,可重入的功能可以被多次调用,并且每次调用的行为是独立的、叠加的、互不影响的,例如:修改出站请求头功能是可重入功能,同一个客户端请求如果匹配上多个规则条件,则对应的每个规则配置都会执行。

示例1:修改出站请求头

假如一个用户请求同时匹配条件B和条件C,那么配置2和配置3都会执行,全局配置也会执行,但是因为全局配置没有设置执行动作,因此没有影响,最终执行结果是用户请求将会被加上以下2个请求头:

  • animal: cat

  • fruit: apple

序号

规则配置

规则条件

功能配置

是否执行

1

规则配置1

条件A(不匹配)7dfac9467c5afbc5844c5c98eaed41fa

新增一个请求头,请求头名称为food,请求头值为rice。

否 7dfac9467c5afbc5844c5c98eaed41fa

2

规则配置2

条件B image

新增一个请求头,请求头名称为animal,请求头值为cat。

是 image

3

规则配置3

条件C image

新增一个请求头,请求头名称为fruit,请求头值为apple。

是 image

全局配置

无

无

是 image

不可重入的功能

在一个请求的处理过程中,不可重入的功能只能被调用一次,调用结束以后就跳出对应的功能模块。同一个客户端请求如果匹配上多个规则条件,则只有第一个匹配上的规则配置会执行。

示例2:重写URL

假如一个用户请求同时符合条件B和条件C,那么仅配置2会执行,由于规则配置2序号靠前,先匹配上了条件B,执行结果是用户请求URL的路径被改写为/animal:

  • 原始请求:http://example.com/test

  • 重写后的请求:http://example.com/animal

序号

规则配置

规则条件

功能配置

是否执行

1

规则配置1

条件A(不匹配)7dfac9467c5afbc5844c5c98eaed41fa

将用户请求URL的路径被改写为/food。

否 7dfac9467c5afbc5844c5c98eaed41fa

2

规则配置2

条件B image

将用户请求URL的路径被改写为/animal。

是 image

3

规则配置3

条件C image

将用户请求URL的路径被改写为/fruit。

否 7dfac9467c5afbc5844c5c98eaed41fa

全局配置

无

无

否 7dfac9467c5afbc5844c5c98eaed41fa

规则配置的生效颗粒度

规则配置的生效颗粒度包含功能维度和子功能维度。

功能维度

规则作用于整个功能模块,配置按整个功能模块生效。

说明

用户请求匹配上某个规则条件时,如果某个子功能模块的配置为空,则该子功能模块将按照未添加配置来执行。

示例1:SSL/TLS规则(不可重入功能,并且规则配置按功能维度生效)

假设用户请求同时符合条件 B 和条件 C,由于规则配置2序号靠前,先匹配上了条件B,则仅执行配置 2,其中 TLS 加密套件为空的部分按默认设置生效。

序号

规则配置

规则条件

SSL/TLS加密

TLS加密套件与协议版本配置

OCSP Stapling

HTTP/2

HTTP/3(QUIC)

是否执行

1

规则配置1

条件A(不匹配)7dfac9467c5afbc5844c5c98eaed41fa

开启

-

关闭

关闭

关闭

否 7dfac9467c5afbc5844c5c98eaed41fa

2

规则配置2

条件B image

开启 image

-image

关闭 image

关闭 image

关闭 image

是 image

3

规则配置3

条件C image

开启

-

开启

开启

开启

否 7dfac9467c5afbc5844c5c98eaed41fa

全局配置

无

关闭

-

关闭

开启

开启

否 7dfac9467c5afbc5844c5c98eaed41fa

子功能维度

规则作用于子功能模块,配置按子功能模块生效。

说明

用户请求匹配上某个规则条件时,如果某个子功能模块的配置为空,则该子功能模块将继续往下匹配规则条件,直到命中规则条件的同时,子功能模块的配置不为空。

示例2:缓存规则(不可重入功能,并且规则配置按子功能维度生效)

以下为缓存规则配置示例。假设用户请求同时符合条件 B、C 和 D,按照序号从小到大匹配则各子功能,未配置项按全局默认设置执行。

序号

配置

规则条件

缓存资格

浏览器缓存过期时间

边缘缓存过期时间

自定义CacheKey

端口缓存

响应过期缓存

缓存保持

1

规则配置1

条件A(不匹配)7dfac9467c5afbc5844c5c98eaed41fa

符合缓存条件

-

优先遵循源站缓存策略(如果存在),否则不缓存

-

-

关闭

-

2

规则配置2

条件B image

符合缓存条件 image

-

优先遵循源站缓存策略(如果存在),否则不缓存 image

-

-

关闭 image

-

3

规则配置3

条件C image

绕过缓存

不缓存 image

-

-

-

-

-

4

规则配置4

条件D image

符合缓存条件

-

忽略源站缓存策略,使用自定义缓存TTL=1小时

忽略查询字符串 image

-

关闭

-

5

规则配置5

条件E

符合缓存条件

-

-

-

-

关闭

-

全局配置

无

-

-

-

-

默认关闭 image

-

默认关闭 image

最终生效配置

符合缓存条件 image

不缓存 image

优先遵循源站缓存策略(如果存在),否则不缓存 image

忽略查询字符串 image

关闭 image

关闭 image

关闭 image

不同功能特性差异表

功能分类

规则功能名称

规则功能的可重入性

规则配置的生效颗粒度

规则配置的生效优先级

SSL/TLS

SSL/TLS规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

HTTPS规则

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

转换规则

重写URL

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

修改出站请求头

可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

修改出站响应头

可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

重定向

请求重定向

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

缓存

缓存规则

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

内容优化

文件压缩

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

图像优化

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

视频处理

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

网络优化

网络优化规则

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

回源

回源规则

不可重入

子功能

按照规则列表的序号,序号越小,优先级越高。

配置管理

版本管理

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

流量

等候室规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

负载均衡规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

需要注意是否设置了结束动作:

  • 设置了结束动作:第一条匹配上的规则,执行完之后就会结束,不再继续往下匹配。

  • 未设置结束动作:有多个规则条件匹配上的情况下,最后一条匹配上的规则对应的功能配置会最终执行。

安全防护

安全规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

自定义规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

频次控制规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

托管规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

扫描防护规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

白名单规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。

Bots规则

不可重入

功能

按照规则列表的序号,序号越小,优先级越高。