概述

更新时间: 2024-04-07 10:32:02

您可以通过设置规则,根据用户请求的不同特征,灵活的调整全站加速 DCDN的配置是否对该请求生效,用以满足您不同的业务需求,如:为不同特征的用户请求下发特定配置、重定向用户请求、设置特定的回源站点等需求。

功能介绍

阿里云全站加速 DCDN规则引擎允许您使用相同的基本语法和配置逻辑为筛选出特定特征的请求,并为请求下发不同的不同的配置(例如:缓存、重定向、压缩、回源、WAF等)。

规则引擎支持使用多种类型的特征对用户请求进行筛选,详情请查看:规则支持筛选的用户请求特征

规则生效优先级

  • 同一个功能(例如:浏览器缓存过期时间)在全局配置和规则中都配置的情况下,规则中配置的生效优先级更高。

  • 同一个规则功能(例如:缓存规则)的配置列表内,如果存在多条规则配置,则执行顺序是从上到下,顺序执行。可以在规则配置列表内调整规则的位置,以调整规则的执行优先级。

注意事项

不同套餐支持的功能和规则条数不相同,部分功能需升级至指定版本才可以配置,各类型套餐详情请参考:套餐功能对比

规则支持筛选的用户请求特征

一条完整的用户请求筛选规则由条件表达式逻辑判断运算符构成:

image

  • 条件表达式:筛选满足特定特征的用户请求。

  • 逻辑判断运算符:组合多个条件表达式筛选的用户请求。

您可以根据实际业务需求设置多个条件表达式并组合用于筛选用户请求。

条件表达式

全站加速 DCDN支持匹配多种用户请求的特征,您可根据需求设置条件表达式用于筛选用户请求。

image

条件表达式支持的配置

说明

选择包含以下各项不包含以下各项时支持输入多个值,请逐个输入并按回车确认或在下拉列表中选择。

匹配类型(MatchType)

匹配类型

(英文名称)

匹配类型含义

匹配类型

变量

支持的匹配运算符(MatchOperator)

匹配值(MatchValue)

是否支持区分大小写

匹配值是否允许配置空字符串

请求方法

Request Method

客户端请求使用的请求方法。

http.request.method

  • 等于

  • 不等于

  • 包含以下各项

  • 不包含以下各项

可选值:

  • GET

  • POST

  • PURGE

  • PUT

  • HEAD

  • OPTIONS

  • DELETE

  • PATCH

HTTP 版本

HTTP Version

客户端请求使用的HTTP版本。

http.request.version

可选值:

  • HTTP/1.0

  • HTTP/1.1

  • HTTP/2.0

  • HTTP/3.0

国家/地区

Country or Region

客户端IP地址归属的国家/地区。

ip.geoip.country

您可以通过下拉列表来选择。

文件名

File Name

客户端请求的文件的名称

http.request.uri.path.file_name

不包含文件后缀的文件名,如:

  • /a/b 文件名是b

  • /a/b/ 文件名为空

  • /foo.tar.bz2 文件名为foo.tar

  • 128_128.jpg 文件名为128_128

文件扩展名

File Extension

客户端请求的文件的后缀名。

http.request.uri.path.extension

从右向左识别,识别到第一个".",不包含"."。例如:文件foo.tar.bz2的后缀是bz2。

IP源地址

IP Source Address

客户端的IP。

ip.src

  • 支持填写IPv4格式IP,例如:192.168.X.X

  • 支持填写IPv6格式IP,例如:240e:95c:3004:2:3:0:0:XXX

  • 支持网段方式填写,例如:192.168.XXX.XXX/31

SSL/HTTPS

SSL/HTTPS

客户端请求使用的协议类型。

http.request.scheme

  • 等于

  • 不等于

可选值:

  • http

  • https

主机名

Hostname

客户端请求携带的hostname。

匹配顺序:请求URL中的host>请求头HOST中的host。

http.host

  • 等于

  • 不等于

  • 包含字符串

  • 不包含字符串

  • 字符串开头为

  • 字符串结尾为

  • 字符串开头不是

  • 字符串结尾不是

  • 与正则表达式匹配

  • 与正则表达式不匹配

  • 值为其中任意一项

  • 值不为其中任意一项

例如:["www1.alibaba.com","www2.alibaba.com"]

URI

URI

客户端请求URL中的路径,包含请求参数。

http.request.uri

例如:/articles/index?section=330688&expand=comments

主机URI 完整名

URI FULL

客户端请求的完整URI。

http.request.full_uri

例如:htt­ps://www.example.org/articles/index?section=330688&expand=comments

URI 路径

URI Path

客户端请求URL中的路径,不含请求参数。

http.request.uri.path

例如:/articles/index

URI 查询字符串

URI Query String

客户端请求URL中完整的请求参数。

http.request.uri.query

例如:section=330688&expand=comments

URI 指定查询字符串

URI Specifies Query String

客户端请求URL中指定的请求参数。

http.request.uri.args["session"]

支持输入指定查询字符串的参数名称,对指定参数的值进行匹配,例如:参数session的值330688。

说明

仅在如下匹配运算符时支持空值:

  • 等于

  • 不等于

  • 包含

  • 与正则表达式匹配

Cookie

Cookie

客户端请求携带的Cookie。

http.cookie

  • 等于

  • 不等于

  • 包含字符串

  • 不包含字符串

  • 与正则表达式匹配

  • 与正则表达式不匹配

例如:session=330688;background=light。

用户代理

User-Agent

客户端请求携带的客户端信息。

http.user_agent

例如:curl/7.29.0。

引用方

Referer

发起客户端请求的原始页面的URL。

http.referer

例如:http://refer.com.cn。

X-Forwarded-For

X-Forwarded-For

客户端请求中X-Forwarded-For标头的值。

http.x_forwarded_for

例如:192.168.1.X,192.168.2.X

请求标头

Request Header

客户端请求中指定标头。

http.request.headers["session"]

支持输入指定标头名称,对指定请求标头的值进行匹配,例如:标头session的值330688。

Cookie 值

Cookie value of

客户端请求中指定的Cookie参数。

http.request.cookies["session"]

支持输入指定Cookie参数,对指定Cookie参数的值进行匹配,例如:参数session的值330688。

逻辑判断运算符

对同一个层级内的条件(包括被嵌套的条件集合)进行逻辑判断,支持And和Or。

  • And(并且):逻辑与运算符,所有条件都匹配才会匹配成功。

  • Or(或者):逻辑或运算符,其中一个条件匹配即可匹配成功。