可能的原因
原因一:您在CDN控制台开启了忽略URL参数,同时源站设置了根据URL参数不同返回不同的资源。
当您的源站设置了根据不同URL参数返回不同资源,而CDN侧开启了忽略URL参数,CDN就会忽略参数进行缓存资源,这样就导致不同的节点可能由于首次请求时带的参数不同而缓存不同的资源。当下一次同一个请求访问到不同的节点,收到的返回数据也会不同。
原因二:源站资源更新后没有执行缓存刷新操作。
如果您的源站更新了某个资源,而这个资源的访问URL没有变化,终端用户访问该资源时如果节点有缓存,就会直接命中缓存。如果您在更新资源后没有执行缓存刷新操作,只有当节点已缓存的资源过期后才会回源请求最新的资源并重新缓存到节点。同时,由于各个地区访问热度不同,淘汰时间不同,有的节点缓存已经淘汰,用户再次访问时,会回源站请求新的资源,有的节点缓存还在,用户访问时直接返回给用户,从而这导致各个节点的缓存可能出现新老版本同时存在,不同节点缓存内容不一致的情况。
解决办法
①不同时使用CDN的URL参数功能和源站根据不同URL参数返回不同资源功能。
首先确认您的源站是否设置了根据URL参数返回不同资源,如果设置了,请执行以下操作:
a.登录华为云控制台,选择“所有服务 > CDN与智能边缘 > CDN”,进入CDN管理控制台。
b.单击左侧“域名管理”,进入域名管理页面。
c.单击对应的域名,选择“缓存配置”页签,查看是否开启了忽略URL参数。
d.如果您的域名如上图所示开启了忽略URL参数,请关闭即可。
②资源更新后刷新对应的URL缓存。
当您更新了源站资源后,请同步刷新对应的URL,详细步骤如下:
登录华为云控制台,选择“所有服务 > CDN与智能边缘 > CDN”,进入CDN管理控制台。
单击左侧“预热刷新”,选择“缓存刷新”页签,输入对应的URL或者目录进行刷新。
说明:您还可以通过CDN服务提供的缓存刷新、缓存预热API接口来刷新CDN缓存,详见API参考。
版权声明:本文章文字内容来自第三方投稿,版权归原始作者所有。本网站不拥有其版权,也不承担文字内容、信息或资料带来的版权归属问题或争议。如有侵权,请联系contentedit@huawei.com,本网站有权在核实确属侵权后,予以删除文章。