基本概念
基本概念 | 描述 |
---|
缓存规则 | - 全站加速允许您通过配置缓存规则,设置源站内容在边缘节点的缓存过期时间,以调整源站内容在节点的缓存更新频率。
- 您可以按照
文件后缀 、目录 、文件全路径 、首页 、全路径正则表达式 等方式来指定源站返回的数据内容,并对这部分数据设置缓存过期时间。 - 当边缘节点上的缓存内容达到您设置的缓存过期时间、或者请求未能匹配节点已有的缓存内容,边缘节点会选择最佳路径将请求路由到源站。在源站响应客户端请求、返回请求内容时,边缘节点会按照您设置的缓存规则缓存静态内容,并将内容发送给客户端。在您设置的缓存过期时间内,客户端请求这部分内容时,可以就近在边缘节点上获取内容。
|
说明
- 如果您开启了自适应缓存功能、同时设置了缓存规则,当源站返回的静态内容同时匹配自适应缓存规则、缓存规则时,那么边缘节点会优先按照缓存规则来缓存静态内容。更多关于不同缓存规则优先级的问题,请参见缓存规则的优先级。
- 全站加速的边缘节点缓存策略遵循 HTTP 标准协议。您通过源站返回的 HTTP 响应头中的 Cache-Control 字段来设置缓存时间。
操作背景
通过配置缓存规则,您可以设置静态内容缓存在边缘节点上的有效时间、缓存时间是否遵循源站、查询参数的规则、是否忽略大小写等具体规则。这可以帮助您定制化的缓存静态内容,合理配置缓存时间,进而提升客户端请求匹配到边缘节点相关内容的命中率,降低回源率。
操作步骤
- 登录全站加速控制台。
- 点击左侧导航栏 域名管理 ,进入 域名管理 页面后,点击待配置的加速域名名称。
- 在域名管理页面,点击 缓存配置 ,再点击 编辑 。
- 在 缓存配置 标签页,在 缓存键配置 下方,点击 添加缓存规则,根据实际情况来配置缓存规则。更多请参见参数解释。
- 点击 提交 ,完成配置缓存规则。
参数解释
字段 | 解释说明 |
---|
优先级 | - 对于添加的缓存规则,您可以通过对规则的拖拽进行优先级的调整,列表序号越小的规则优先级更高。
- 每一条缓存规则都有唯一的优先级。如果您创建多条缓存规则,系统会默认按照创建时间的先后设定优先级,即先创建的缓存键规则优先级高于后创建的缓存规则。
- 如果源站返回的静态内容符合多个缓存规则,边缘节点会执行优先级最高的缓存规则。
|
规则类型 | 按文件名后缀 | 您可以选择特定的文件类型,使边缘节点缓存特定文件类型的静态内容。具体规则如下: - 支持输入多个文件后缀名,后缀名之间用英文分号
; 隔开。 - 文件名后缀英文字符注意区分大小写。
- 支持多种静态内容,如 JPG、TXT 等。
|
按目录 | 您可以指定某一路径,使边缘节点缓存特定路径下的静态内容。具体规则如下: - 目录必须以正斜线
/ 开头,以正斜线/ 结尾,如/www/dir/aaa/。 - 如果需要设置此域名下的全部目录,直接输入
/ 。 - 不同文件类型使用英文逗号
, 隔开。 - 注意区分大小写。
|
按文件全路径 | 您可以指定一个完整路径下某一文件,使边缘节点缓存特定路径下的文件内容。具体规则如下: - 全路径必须以正斜线
/ 开头,如/www/dir/aaa。 - 支持带有通配符
* 正则匹配某一类型文件,如/test/abc/*.jpg。 - 不同文件类型使用英文逗号
, 隔开。 - 注意区分大小写。
|
首页 | 您可以指定根目录,使边缘节点缓存指定根目录下的静态内容。具体规则如下: - 网站的根目录就是网站的顶层文件目录,目录下放着网站所有的子文件夹。
- 设置首页即根目录缓存规则,子文件夹都会遵循相同的缓存规则。
- 默认规则为
/ ,不可变更。
|
按全路径正则表达式 | 您可以指定一个完整路径下正则匹配的规则,使边缘节点缓存符合规则的静态内容。具体规则如下: - 输入内容符合 PCRE 正则表达式规范。
- 输入内容长度小于256个字符。
- 多个规则使用
; 隔开。
|
缓存策略 | - 默认策略:表示本规则优先遵循源站不缓存的响应头信息(Cache-Control:no-store/private),然后再遵循全站加速的缓存配置规则。
- 强制缓存:表示本规则完全遵循全站加速的缓存配置,忽略源站不缓存响应头信息(Cache-Control:no-store/private)的情况。
- 源站优先:表示本规则优先遵循源站响应头信息(Cache-Control > Expires)进行缓存和不缓存判断,再遵循全站加速的缓存策略。
|
缓存时间 | 当达到设置的过期时间时,边缘节点上缓存的静态内容失效。此时客户端向边缘节点请求这一内容时,全站加速会在源站获取最新内容并按照规则将内容缓存在边缘节点中。全站加速缓存时间可设置的单位包括:秒、分钟、小时、天。建议您参考如下规则设置: - 图片类型、应用下载类型等不经常更新的静态内容:建议您将缓存时间设置成30天以上。
- JS、CSS等频繁更新的静态内容:建议您根据实际需求设定缓存时间。
- PHP、JSP、ASP等动态内容:建议您将缓存时间设置成0秒,即边缘节点回源获取这些内容。
|
忽略大小写 | 指定 规则 中的匹配条件是否对大小写敏感。 例如:您创建了一个文件后缀规则,匹配条件是 png;txt ,忽略大小写 为 否。此时,该规则可以匹配 URL 是 HTTPS://www.EXAMPLE.com/image.png 的请求,但是不能匹配 https://www.example.com/image.PNG 。 |
忽略Set-Cookie | - 匹配该规则后,当源站返回
Set-Cookie 头部时,边缘节点在缓存资源的同时是否删除Set-Cookie 头部。 - 默认为
是 。
|
缓存规则的优先级
说明
边缘节点会综合以下配置信息来缓存源站返回的静态内容。
- 源站响应头中是否包含 Cache-Control: no-store 或 Cache-Control: private 字段。
- 控制台是否开启自适应缓存功能。
- 控制台的缓存规则。
- 源站的缓存规则。
全站加速遵循的缓存规则优先级如下:
根据静态内容是否匹配缓存规则,若匹配,则进行下一步,否则进行步骤3。
静态内容匹配缓存规则时,全站加速根据您配置的缓存策略来做出具体行为,不同缓存策略的行为如下表:
缓存策略 | 判断方式 |
---|
默认策略 | 根据源站响应头中是否包含 Cache-Control: no-store 或 Cache-Control: private 字段进行判断。 - 包含:边缘节点不缓存本部分静态内容。
- 不包含:边缘节点缓存本部分静态内容。缓存过期时间是您在控制台配置的缓存时间。
|
源站优先 | - 根据源站响应头中是否包含 Cache-Control: no-store 或 Cache-Control: private 字段进行判断。
- 包含:边缘节点不缓存本部分静态内容。
- 不包含:进行下一步判断。
- 根据源站响应头中是否包含其他缓存字段。
- 包含:边缘节点缓存本部分静态内容。缓存过期时间遵循源站响应头信息(Cache-Control:max-age > Expires)。
- 不包含:边缘节点缓存本部分静态内容。缓存过期时间是您在控制台配置的缓存时间。
|
强制缓存 | 边缘节点缓存本部分静态内容。缓存过期时间是您在控制台配置的缓存时间。 |
静态内容不匹配缓存规则时,全站加速根据您是否开启自适应缓存功能来做出具体行为,不同缓存策略的行为如下表:
自适应缓存功能 | 判断方式 |
---|
开启 | - 根据源站响应头中是否包含 Cache-Control: no-store 或 Cache-Control: private 字段进行判断。
- 包含:边缘节点不缓存本部分静态内容。
- 不包含:进行下一步判断。
- 根据源站响应头中是否包含其他缓存字段。
- 包含:边缘节点缓存本部分静态内容。缓存过期时间遵循源站响应头信息(Cache-Control:max-age > Expires)。
- 不包含:边缘节点不缓存本部分静态内容。
|
关闭 | 边缘节点不缓存本部分静态内容。 |