功能说明
缓存配置是指又拍云 CDN 加速节点(包括边缘节点和中心节点)在缓存您的资源文件时遵循的一套过期规则。当资源文件处于过期状态时,此时用户请求会由节点发送至源站,重新获取资源内容并缓存至节点,同时返回给最终用户;当资源内容处于未过期状态时,您的用户请求到达节点后,会由节点直接响应最终用户的请求。合理的配置资源文件缓存时间,能够有效的提升缓存命中率,降低回源率,节省您的源站带宽。
配置引导
登录 CDN控制台,选择需要配置的服务,依次进入:服务管理 > 功能配置 > 缓存配置 > 缓存过期配置,点击【管理】按钮即可开始配置。如下图所示:
自定义缓存配置
您可以根据自身业务需求,在配置界面的右上角,点击右上角的【添加】 按钮进行资源文件缓存过期时间的配置,如截图所示:
- 进入缓存过期管理配置界面
- 进入自定义缓存过期配置界面
在该配置界面,您可以针对模板、缓存时间、资源路径、状态码等进行选择和配置。CDN 支持三种维度的缓存过期规则配置,分别为:
1.根据文件类型设置缓存过期策略
您可以根据模板填充文件类型后缀,根据文件类型来设置缓存时间,如下示例所示:
设置完成后,域名下所有匹配 .txt .doc .wri .docs
的文本资源,在节点的缓存有效时间均为 1 天。
2.根据文件目录设置缓存过期策略
您可以自定义配置文件路径,根据文件路径来设置缓存时间,如下示例所示:
3.全局缓存过期策略配置
全局缓存策略适合源站全是静态资源的客户,可以针对该服务一键开启配置缓存过期时间,开启请谨慎。详细配置可参照如下图所示:
设置完成后,该服务下所有域名匹配的资源,在节点的缓存有效时间均为 7 天。
注意事项:
- 全局缓存在自定义缓存配置里面的优先级是最低的,且优先级不可调节,如下图所示:
- 全局缓存设置有一个单独的开关,需要开启之后,才可以进行配置。
默认配置模板
特别地,我们针对自定义缓存配置,默认规划了模板,并且预设了缓存时间,您可以根据具体情况进行修改。具体模板如下:
首页:/ 缓存 12 小时;
目录页:/*/ 缓存 12 小时;
图片文件:/*.(jpg,jpeg,png,bmp,gif,psd,ico,tga,imb,tiff) 缓存 7 天;
文本文件:/*.(txt,doc,wri,docs,css,js,dot,xml,log,bat,csv) 缓存 1 天;
音视频文件:/*.(wav,mp3,wmv,rmi,aac,mp4,rmvb,mkv,avi,flv,swf,rm,mov,movie,qt) 缓存 7 天;
下载类文件:/*.(exe,ios,apk,ipa,pxl,sis,cab,deb,rar,zip,gzip,tar,7z,bzip2,dmg,gz,wim,tbz,tpz,z,jar) 缓存 7 天;
4.URI 带参数配置缓存过期策略
除了按照文件类型(文件扩展名)、文件目录以及全局缓存来配置缓存过期时间,您还可以根据 URI
带参数来配置缓存过期时间,具体格式如下:
以上规则中,?
后面跟随的就是参数筛选规则;*
特指通配符,如不需配置通配符,可以使用具体资源路径,如下规则所示:
关于 ?
后面的参数筛选规则配置请参考如下分类:
分类 | 说明 | 示例 |
---|---|---|
只有 KEY 没有 VALUE |
匹配该参数 KEY 所有对应的值以及值为空这种特殊的情况 |
/dir/*?bar&foo |
既有 KEY 也有 VALUE (格式:K=V) |
会精确匹配 KEY 和 VALUE |
/dir/*?foo=123&bar=456 |
只有 ? ,不带任何参数 |
表示参数为空 | /dir/*? |
不带 ? |
表示不验证参数 | /dir/* |
注意:
- 参数规则配置顺序不敏感,参数之间通过
&
进行连接; - URI 仅限 PATH(路径)以及 ARGS(参数)部分,例如:
/m/n/*?bar&foo=123
。
5.不缓存配置
根据业务情况,可以针对一些动态资源文件( 例如:php、jsp、asp、do、cgi、action、json 等)强制配置不缓存, 详细配置可参照如下所示:
6.默认缓存策略
在没有匹配到自定义缓存规则且源站也没有返回任何有效缓存头的情况下,我们的默认配置策略如下:
1.针对静态资源,所有正常状态码(大于等于 200 小于 400)均缓存 8 天。特别地,301 响应缓存 2 小时,302 响应缓存 20 分钟
2.针对动态资源,程序会自动识别,则不进行缓存
3.对于其他大于等于 400 的不正常响应,则不进行缓存
7.缓存优先级
请根据具体缓存优先级情况合理配置缓存策略,又拍云 CDN 加速平台目前的缓存优先级如下:
注意事项:
- 源站缓存配置,指 Cache-Control 和 Expires 请求头的设置
- 以上缓存配置优先级目前不支持顺序调节,后续我们会考虑支持
特别声明
针对使用又拍云存储服务的客户,我们暂时不支持缓存配置的自定义设置,我们默认给出了一个默认的缓存配置规则,具体如下:
8.动静自动分离
针对使用 自有源
的 CDN 服务而言,当没有匹配到自定义缓存规则且源站也没有返回任何有效的缓存头时,我们就会对回源内容进行动静内容识别。特别地,我们会根据响应头中的 Content-Type
字段和 URL 中的文件后缀名来判断是否是静态内容,其中 Content-Type
匹配优先级高于文件后缀名。
参考列表
以下是我们维护的一份 Content-Type
和文件后缀名列表,若满足匹配我们就认为是静态内容:
Content-Type 列表
text/css
text/javascript
application/javascript
application/x-javascript
image/gif
image/png
image/jpeg
image/webp
image/tiff
image/x-icon
image/x-ms-bmp
image/svg+xml
application/font-woff
application/java-archive
application/msword
application/pdf
application/postscript
application/zip
application/octet-stream
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.openxmlformats-officedocument.presentationml.presentation
audio/mpeg
audio/ogg
audio/x-m4a
video/mp4
video/x-flv
video/x-m4v
文件后缀名列表
css | js | jpg | jpeg | gif | ico | png | bmp | pict | csv |
---|---|---|---|---|---|---|---|---|---|
doc | pls | ppt | tif | tiff | eps | ejs | swf | midi | |
mida | ttf | eot | woff | otf | svg | svgz | webp | docx | xlsx |
xls | pptx | ps | class | jar | bz2 | bzip | exe | flv | gzip |
rar | rtf | tgz | gz | txt | zip | mp3 | mp4 | ogg | m4a |
m4v | apk |