配置缓存过期时间
缓存过期时间指源站资源在DCDN节点缓存的时长,达到预设时间,资源将会被DCDN节点标记为失效资源。如果客户端向DCDN节点请求的资源已经失效,DCDN会回源站获取最新资源并缓存到DCDN节点。您可以根据业务需求,按目录或文件后缀名配置静态资源的缓存过期时间。
注意事项
您成功添加域名后,可以修改缓存时间。设置的缓存时间长短会导致回源流量不一样,费用也有所不同,建议根据不同的业务需求设置缓存时长。缓存过期时间会影响回源频率,建议根据实际业务需求设置资源缓存时长。
缓存过期时间过短,会导致DCDN频繁回源,增加源站的流量消耗;缓存过期时间过长,会带来数据更新时间慢的问题。
缓存在DCDN节点上的资源,如果该资源的访问热度较低(同一个DCDN节点上的同一个资源被客户端访问的频次较低),那么很可能会在缓存过期之前被DCDN节点上其他访问热度较高的资源覆盖。
DCDN节点在收到源站响应的静态文件资源的时候,会按照阿里云DCDN默认缓存规则及优先级来执行,动态文件资源缓存规则请参见动静态加速规则概述。
建议您源站的内容不使用同名更新,而是采用版本号的方式同步。
为了能准确找到更新前和更新后的源站内容,建议您源站的内容以版本号的方式同步,即更新源站内容时采用不同的名称。例如,采用img-v1.0.jpg、img-v2.1.jpg的方式命名。
操作步骤
登录DCDN控制台。
在左侧导航栏,单击域名管理。
- 在域名管理页面,单击目标域名对应的配置。
在指定域名的左侧导航栏,单击缓存配置。
在缓存过期时间页签下,单击添加。
在缓存过期时间对话框,配置缓存规则。
参数
说明
类型
支持目录或文件后缀名指定资源范围
目录:为某一路径下所有资源设置相同缓存规则。
文件后缀名:为某一文件类型资源的设置相同缓存规则。
内容
指定待配置资源的目录或文件后缀名。
当类型选择目录时,填写说明如下:
每次只能添加单条目录,可以用正斜线(/)匹配所有目录。
支持输入目录的完整路径,须以正斜线(/)开头,例如/directory/aaa。
当类型选择文件后缀名时,填写说明如下:
支持输入一个或多个文件后缀名,多个文件后缀名用英文逗号(,)分隔,例如
jpg,txt
,大小写敏感,注意区分大小写。支持的静态文件类型如下:
图片:GIF、PNG、BMP、JPEG、JPG。
页面:HTML、HTM、SHTML。
音视频:MP3、WMA、FLV、MP4、WMV、OGG、AVI。
文本:DOC、DOCX、XLS、XLSX、PPT、PPTX、TXT、PDF。
其他:ZIP、EXE、TAT、ICO、CSS、JS、SWF、APK、M3U8、TS、EJS、SVG、WOFF、OTF。
不支持用星号(*)匹配所有的文件类型。
过期时间
资源对应的缓存过期时间,最长可以设置3年。设置规则如下:
不经常更新的静态文件:例如,图片类型、应用下载类型等,建议设置1个月以上。
频繁更新的静态文件:例如,JS、CSS等,您可以根据实际业务情况设置。
动态文件:例如,PHP、JSP、ASP等,建议设置为0s,即不缓存。
权重
权重即缓存规则的优先级。取值为1~99,数值越大优先级越高,对应规则优先生效。
说明有多条缓存规则的情况下,建议每条缓存规则都设置不同的权重,通过权重来控制规则执行优先级。
权重相同的规则生效优先级:先创建的>后创建的,与规则类型无关。
如果配置了多条缓存策略,其中一条缓存策略生效后将不再继续匹配其他的缓存策略。
单击确定,完成配置。
成功配置缓存过期时间后,您可以在缓存过期时间列表中,根据所需修改或删除配置。
阿里云DCDN默认缓存规则及优先级
DCDN节点在收到源站响应的静态文件资源的时候,会按照以下的缓存规则来执行(数值越小,优先级越高):
源站响应
pragma:no-cache
、cache-control:no-cache
(或者no-store
,或者max-age=0
)时,不缓存。DCDN控制台设置的缓存过期时间或者状态码过期时间。
说明若DCDN请求同时命中多条规则,有且仅有一条规则会生效,优先级为:权重>规则创建时间。
有多条缓存规则的情况下,建议每条缓存规则都设置不同的权重(权重越大优先级越高),通过权重来控制规则执行优先级。
权重相同的规则生效优先级:先创建的>后创建的,与规则类型无关。
源站配置其他缓存规则,优先级由高至低为:
cache-control
>expires
>last-modified
>ETag
。源站响应中使用
cache-control
设置过期时间,取值为max-age
或s-maxage
,并且max-age
或s-maxage
的值大于0,例如:cache-control:max-age=3600。如果同时存在max-age
和s-maxage
,则以s-maxage
的值为准。源站响应中使用
expires
设置过期时间,例如:expires:Tue, 25 Nov 2031 17:25:43 GMT。源站响应中携带了
ETag
或last-modified
,则使用以下规则来计算缓存时间:有
last-modified
,使用公式(当前时间-last-modified
)* 0.1,计算结果在10秒~3600秒及之间的,取计算结果时间;小于10秒的,按照10秒处理;大于3600秒的,按照3600秒处理。只有
ETag
,缓存10秒。
源站返回的数据中
ETag
、last-modified
、cache-control
和expires
这些缓存相关的响应头都没有携带,则默认不缓存。
HTTP协议缓存控制机制说明
在HTTP协议中定义了三种不同类型的协议头部来实现缓存控制相关的机制:
配置示例
示例一:需要对“.txt”格式的文件缓存7天,在DCDN控制台增加一条文件名后缀为“.txt”的缓存规则,缓存过期时间设置为“7天”。
示例二:为加速域名demo.aliyun.com
配置以下缓存策略,DCDN节点回源下载资源http://demo.aliyun.com/image/example.png
,虽然以下两条规则都匹配到了,但是因为这两条规则的权重相同,因此要判断规则创建的时间,先创建的规则优先级高于后创建的,因为目录/image这条规则创建的时间更早,所以系统最终生效的是目录类型这条规则。