规则集
什么是规则集
HTTP规则引擎允许用户自定义CDN边缘服务器行为,例如CDN将如何管理缓存和重定向。这为不同平台的网站与CDN集成创造了很大的灵活性和适应性,无需太多麻烦。
如何设置规则集
你可以进入CDN Resources -> Rules 去配置
规则集由条件和操作组成。条件由一个主语和一个谓语组成,主语决定要选择的值,谓语指定要与主语进行比较的对象。条件由连接词“AND”或“or”连接。当所有条件都满足时,CDN边缘服务器将执行与规则关联的操作。CDN边缘服务器从上到下处理这些规则。它在第一次匹配时结束处理。
主题
主题 | 详细信息 |
---|---|
URL | 选择请求的URL部分。完整的请求URL,包含协议、域名、请求路径、参数等。 例子 http://cdn.example.com/image.jpg?name=cdn |
IP | 选择客户端的IP地址。如果客户端使用代理服务器,则会选择向边缘服务器发出请求的代理服务器的IP。 例子 192.0.2.43 |
Cookie | 选择客户端发送的特定cookie的值。 例子 选择的Cookie: logged_in 客户请求的标头: Cookie: session_id=abcdef;logged_in=1; cart_id=defabc 所选值: 1 |
国家(Country) | 选择客户的国家。如果客户的国家/地区无法从其IP中导出,则选择值“ ”。 例子 客户的IP: 193.113.9.162 所选值: 英国 |
参数(Param) | 选择特定查询字符串参数的值。如果有多个相同的键,则选择最后一个值。 例子 所选参数: page 客户请求: http://cdn.example.com/index.php?page=about&id=53 所选值: about |
扩展(Extension) | 选择请求的文件扩展名。如果请求文件名不包含点,则选择值“ ”。 例子 客户请求: http://cdn.example.com/image.jpg 所选值: jpg |
标头(Header) | 选择特定客户端请求标头的值。如果请求标头不存在,则选择值“ ”。 例子 所选标头: User-Agent 客户端发送标题: User-Agent: Mozilla/5.0 (Windows NT 6.3) Firefox/30.0 所选值: Mozilla/5.0 (Windows NT 6.3) Firefox/30.0 |
方案(Scheme) | 选择请求的方案部分。它可以是http或https。 例子 客户请求: http://cdn.example.com/image.jpg 所选值: http 例子 客户请求 https://secure.example.com/image.jpg 所选值: https |
谓语
谓语 | 详细信息 |
---|---|
等于(Equals) | 将主题与精确值进行比较。 例子 URL /index.php Equals /index.php Result TRUE URL /ExampleFile.txt Equals /examplefile.txt Result TRUE URL /image.jpg Equals /index.php Result FALSE |
以...开头(Starts with) | 比较主题是否以...值开头。 例子 IP 192.0.2.54 Starts With 192.0.2. Result TRUE URL /images/files.jpg Starts With /images/ Result TRUE IP 192.5.54.3 Starts With 192.0.2. Result FALSE |
以...结尾 | 比较主题是否以...结尾。 例子 URL /images/files.jpg Ends With .jpg Result TRUE URL /videos/video.mp4 Ends With .jpg Result FALSE |
包含在列表中(In List) | 将主题与值列表进行比较。每个值由一个空格分隔。 例子 Country GB In List GB ES FR DE Result TRUE Country US In List GB ES FR DE Result FALSE |
匹配通配符(Matches wildcard) | 比较主题是否与通配符值匹配。通配符* 匹配任何0个或更多字符。可以指定多个* 。例子 Url /images/photos/photo.jpg Matches Wildcard /images/ * .jpg Result TRUE Url /images/videos/video.mp4 Matches Wildcard /images/ * .jpg Result FALSE Url /archives/2014/news/index.html Matches Wildcard / * /2014/news/ * Result TRUE |
不等于(Does not equal) | 与等于(Equals)的意义相反 |
不包含在列表中(Is not in list) | 与包含在列表中(In list)的意义相反 |
与通配符不匹配(Does not match wildcard) | 与匹配通配符(Matches wildcard)意义相反 |
动作
动作 | Details | |
---|---|---|
缓存规则 | ||
强制边缘服务器从不缓存(Force Edge To Never Cache) | 强制CDN边缘服务器从不缓存请求。但是,如果请求已经缓存(例如,如果在设置此规则之前缓存了请求),则不会强制将其从缓存中移出。 | |
强制边缘缓存(Force Edge To Cache) | 强制CDN边缘服务器在指定的持续时间内缓存请求。这将覆盖来自源站的任何Cache-Control或Expires标头,即使它们指定了private 或no-Cache 。该值必须为1秒或更长。 |
|
强制客户端缓存(Force Client To Cache) | 强制客户端将请求缓存指定的持续时间(TTL)。这是通过删除所有Cache-Control 和Expires 响应标头来实现的,而是发送Cache-Control: max-age=... 。该值必须为1秒或更长时间。 |
|
重定向规则 | ||
禁止客户(Forbid Client) | 向客户端返回简单的403禁止响应。 | |
将客户端从HTTP重定向到HTTPs(Redirect Client from HTTP to HTTPs) | 返回301将响应从http地址重定向到https地址,而不是从缓存或上游加载。注意,多CDN加速域名的情况,需要选择执行重定向的域名。 | |
重定向客户端(Redirect Client) | 将302重定向响应返回到客户端和指定的URL。必须完整指定URL,以http:// 或https:// 。 |
|
修改标头 | ||
设置请求标题(Set Request Header) | 将请求标头覆盖到源站。必须提供标头名称和标头值。 | |
设置响应标头(Set Response Header) | 覆盖客户端的响应标头。必须提供标头名称和标头值。 | |
设置请求端头中的客户端IP(Set Client IP In Request Header) | 将请求头中的客户端IP地址设置为源。必须提供标头名称。 | |
源规则 | ||
准备源目录(Prepend Origin Directory) | 当边缘服务器从源服务器请求时,将目录前置到URL。 例子 前置原始目录: images 客户端对边缘的请求: http://cdn.example.com/photo.jpg 对源站的边缘请求: http://cdn.example.com/images/photo.jpg 前置原始目录: /some/sub%20directory/ 客户端对边缘的请求: http://cdn.example.com/some/file.txt 对源站的边缘请求: http://cdn.example.com/some/sub%20directory/some/file.txt
|
|
回源主机名(Origin Server Hostname) | 回源主机名的选择影响到请求源站时接收到的域名。默认是CDN加速域名。 跟随CDN域名:"跟随CDN域名"是指源站接收到的域名和当前CDN加速域名保持一致。这种类型基本用于源站支持多域名托管的情况,精准匹配请求,避免404/400错误。 跟随源站:跟随源站"是指源站接收到的域名仍然是填写的源站地址中的信息,不随代理服务域名改变而改变。多用于源站仅服务单一域名,兼容性好,无需修改源站配置。 自定义:自定义Host内容中支持请求变量。 |
|
自动添加标头 | 想源站自动添加这些标头,以便于源站获取客户端信息。 |