FAQ

缓存相关

CDN 默认的缓存策略是怎样的?

在没有匹配到自定义缓存规则且源站也没有返回任何有效缓存头的情况下,我们的默认配置策略如下:

1)针对静态资源,所有正常状态码(大于等于 200 小于 400)均缓存 8 天。特别地,301 响应缓存 2 小时,302 响应缓存 20 分钟

2)针对动态资源,程序会自动识别,则不进行缓存

3)对于其他大于等于 400 的不正常响应,则不进行缓存

CDN 资源是如何控制缓存过期时间的?

CDN 缓存组件严格遵守 HTTP 的标准协议,具体的缓存时间由 HTTP 响应头里面的 Cache-ControlExpires 响应头控制。

注意:由于 Cache-Control 使用的是相对时间来指定的过期时间,所以一般使用 Cache-Control 来指定过期时间。

缓存配置优先级是怎样的?

不缓存配置(后台设置) > 自定义缓存配置(后台配置) > 源站缓存配置 > 默认缓存策略。以上缓存配置优先级目前不支持顺序调节,后续我们会考虑支持。

如何判断设置的缓存时间已经生效?

可以通过 Cache-Control:max-age=xxxxmax-age 的值和自定义缓存配置的值进行比较即可,如果一致则说明已经生效。详情可参见 缓存验证

已经缓存在 CDN 节点的文件如何更新,是实时的么?

不是实时的,缓存更新分为主动更新和被动更新两种方式。主动更新主要是指同名文件在源站更新之后,需要在管理控制台手动去刷新文件,或者通过 API 接口完成;被动刷新是等文件在 CDN 节点的缓存过期之后回源拉取最新的文件。

CDN 可以缓存哪些文件?

一般情况下,CDN 除了对于 PHP、JSP、ASP 等动态文件不能缓存外 ,其他文件都可以缓存。

动态网页文件可以缓存吗?

不可以。又拍云 CDN 会针对文件自动进行动静分离,不会对动态网页进行缓存。

HTTPS 和 HTTP 可以共享一份缓存资源吗?

如果在管理控制后台回源方式选择[协议跟随],就不共享。不开启[协议跟随],则共享。

刷新相关

缓存刷新和文件预热有何区别?

缓存刷新:是指通过管理控制台或者 API 接口的方式将缓存在 CDN 节点的资源文件删除或致过期处理,新的请求过来之后会回源站服务器获取新的文件。

文件预热:是提前将资源文件缓存至 CDN 边缘节点,新的请求过来之后可以直接命中,无需回源服务器获取资源文件,可以有效降低源站压力,提升最终用户首次访问体验。

规则刷新和 URL 刷新有什么区别?

规则刷新:是指源站批量更新文件时,例如某个目录或者某种类型的文件,需要批量刷新文件,可以通过规则刷新来进行。规则示例:http://example.com/video/*http://example.com/image/*.png

URL 刷新:是指源站更新少量资源文件时,可以通过 URL 刷新来进行刷新。示例:http://example.com/image/logo.png

详细介绍,请参见 刷新预热

缓存刷新的生效时间是多少?

缓存刷新的全网生效时间一般是 5 分钟内刷新完成。

使用了又拍云对象存储服务时,文件更新需要手动刷新吗?

不需要。使用了又拍云对象存储服务时,存储中资源更新(替换或删除)时会自动触发 CDN 节点刷新缓存,会在 5 分钟内生效,所以您无需进行手动刷新操作。

发现从 CDN 访问的资源文件和源站资源不一致怎么办?

通过管理控制台或 API 接口执行手动刷新缓存。

这篇文章有帮助吗?