参考阿里云官网文档:https://help.aliyun.com/practice_detail/603170
缓存时间配置
在缓存管理中,可以方便地指定目录和文件后缀名在CDN节点上的缓存时间,缓存时长配置的长短,取决于源站对该文件的变更频率。我们需要分析下业务中以下几个问题:
您的域名下有哪些类型的资源内容?
例如,该加速域名下有html/js/css/mp4/apk等文件类型的内容。
您源站这些不同目录、不同类型的资源内容在什么情况下内容会变化,变化的频率如何?
例如,mp4文件的内容一般不会变化,而html是新闻门户的主页,其展示页面中的文本内容平均1小时更新一次。
您源站这些文件在变化时,文件名是否也会跟随变化?
例如,文件在更新内容时都会使用新的文件名,或 文件更新后仍然使用之前的文件名。
小提示:在下文的内容中,我们将根据此处的分析结果进行缓存时间的配置。
CDN缓存时间主要受两个部分控制:
源站返回的标准HTTP缓存控制头部(cache-control)。
您在控制台上配置的缓存时间。
配置缓存时,我们需要登录CDN控制台。在域名管理中单击目标域名,选择缓存配置。
结合上文中的业务分析,推荐您根据业务情况在CDN域名上配置缓存时间。
如果没有明确业务更新周期,可缓存资源推荐配置一个月以上的缓存时间,如果源站的资源发生变更,您可以通过CDN的刷新缓存功能清理节点上的缓存(下章节中会详细说明)。
需要注意的是,如您的业务中有动态请求(如表单提交/登录/评论/上传等交互),需要设置对应路径或文件类型的缓存时间为0。如果您需要对动态请求也进行加速,优先推荐您使用全站加速(DCDN)产品。
补充说明:参考CDN产品文档,CDN节点上的缓存生效优先级如下
源站响应pragma:no-cache、cache-control:no-cache(或者no-store,或者max-age=0)时,不缓存。
CDN控制台设置的缓存过期时间或者状态码过期时间。
源站配置其他缓存规则,优先级由高至低为:cache-control>expires>last-modified>etag。
源站返回的数据中ETag、last-modified、cache-control和expires这些缓存相关的响应头都没有携带,则默认不缓存