• 首页 > 
  • 使用CDN服务下载的文件不一致

使用CDN服务下载的文件不一致

KB: 40213

 · 

更新时间:2020-01-09 11:33

问题描述

使用CDN服务下载文件后,出现文件内容不一致的情况。

 

问题原因

使用CDN服务访问资源时,在缓存没有过期之前会直接反馈给用户CDN节点上的缓存,在这期间如果源站进行了同名更新操作,则在访问时会发现请求到的资源仍然是旧的资源,从而导致网站内容错乱。

注:同名更新的意思为修改了文件内容,但没有修改文件名。

 

解决方案

建议从以下几个方面解决使用CDN服务下载的文件不一致的问题。

  • 源站不进行同名更新操作或增加版本号。
    • 源站进行了同名更新后CDN并不会感知到,因此建议在源站尽量不要进行同名更新。
    • 通过给URL增加版本参数的方式使CDN请求新资源的时候会回源取数据。
      注:这种方式在CDN的控制台上不能开启过滤参数,否则失效。
  • 用户在进行同名更新后,可通过控制台或API手动刷新对应的资源URL,这样才能保证源站内容与CDN的缓存内容保持一致。刷新方式可以分为目录刷新和URL刷新,如何配置刷新请参见配置CDN后文件如何更新。其中URL刷新主要适合单个资源,刷新速度较快。而目录刷新则会刷新该目录下的所有文件、刷新速度较慢,由于该目录下所有资源的下次请求都会回源,因此可能会对源站带宽负载产生影响。
    • URL刷新:强制将CDN CACHE节点上的某些文件设置为已过期,以达到重新回源更新的目的,生效时间大约在5至10分钟之内,同一个ID每天最多只能刷新2000个URL。

      注:输入的URL必须带有http://

    • 目录刷新:强制将CDN CACHE节点上某个目录的文件均设置为已过期,以达到重新回源更新的目的,适用于内容较多的场景,一般会在30分钟内生效, 一天最多提交100个刷新请求。
      注:所输入内容需以http://开始,以/结束。并且一定要在目录刷新页签进行目录刷新操作,否则在URL刷新页签成功后只刷新单URL,并不包括目录下的所有文件。
  • 如果CDN的源站是OSS,在OSS的控制台上开启CDN缓存刷新功能,当OSS源站出现Object同名更新的时候,会调用CDN的刷新接口刷新对应的URL。可通过以下步骤开启CDN缓存自动刷新功能。
    1. 登录OSS 管理控制台
    2. 在左侧存储空间列表中,单击目标存储空间名称。
    3. 单击 域名管理 页签。
    4. 在您已经绑定域名的记录上,可以看到 CDN 缓存自动刷新 的开关,打开即可。

 

适用于

  • CDN