CDN刷新目录不生效?

2020-12-31 15:07:39 浏览数 (1)

案例背景:

cdn侧的目录刷新分为如下两种:

选择 “刷新变更资源” 模式,当用户访问匹配目录下资源时,会回源获取资源的 Last-Modify 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,回源拉取资源并重新缓存;

选择 “刷新全部资源” 时,当用户访问匹配目录下资源时,直接回源拉取新资源返回给用户,并重新缓存新资源。

问题描述:

目录刷新变更资源之后存在某个资源与源站资源不一致。

原因分析:

如果选择的刷新方式如果为“刷新变更资源”,cdn侧会回源获取资源的 Last-Modify 信息,这里cdn侧会拿到源站该文件的Last-Modify和节点缓存资源Last-Modify进行对比,如果源站该文件的Last-Modify反而比节点上缓存的资源Last-Modify更旧,这里cdn节点是不会抛弃节点本身缓存的。所以可能存在提交“刷新变更资源”的时候,发现节点上缓存的是源站之前的资源(Last-Modify更新的)。建议针对于这种场景下直接使用url刷新或者刷新全部资源。

示例:

可以看到节点211.152.146.73上在09:30的时候缓存为Last-Modify 是11月30号资源

节点211.152.146.73访问示例节点211.152.146.73访问示例

在09:10的时候曾提交过目录刷新

控制台刷新记录控制台刷新记录

可以看到源站上资源Last-Modify为9月24号

源站访问示例源站访问示例

解决方案:

针对这种源站的Last-Modify反而比节点上缓存的资源Last-Modify更旧的情况,推荐使用url刷新或者目录刷新全部资源。

0 人点赞