文档首页/ 内容分发网络 CDN/ 故障排除/ 接入CDN后,网页显示的内容/下载文件/播放的视频不正确
更新时间:2024-06-06 GMT+08:00

接入CDN后,网页显示的内容/下载文件/播放的视频不正确

问题现象

接入CDN加速后,用户访问网站或者APP时,显示的内容不正确、下载的文件不正确、播放的视频不正确。

排查思路

  • 是否缓存规则设置有误
  • 是否本地缓存的问题
  • 资源更新后节点未刷新
  • 是否多个源站文件不一致
  • 是否访问资源被劫持

排查步骤

  1. 检查域名缓存规则配置
    1. 可能是缓存规则配置不正确,基本的缓存过期时间设置建议如下:
      • 对于动态文件(如php、jsp、asp等),请设置成0秒,即不缓存,每次请求都回源获取。
      • 对于不经常更新的静态文件(如.jpg、.zip等),建议将缓存过期时间设置成1个月以上。
      • 对于频繁更新的静态文件(如js、css等),请根据实际业务情况设定。
    2. 可能是缓存优先级设置不正确,导致缓存设置未生效。优先级取值范围为1-100,数值越大优先级越高。

      示例:您需要设置一条.jpg文件,缓存过期时间为2天的规则,设置如下:

      图中两条缓存规则:所有文件缓存过期时间为30天,优先级为8,.jpg文件缓存过期时间2天,优先级为2。当用户请求访问某.jpg文件时,由于所有文件这条优先级较高,会自动匹配,文件在CDN节点的缓存时间为30天而不是您期望的缓存2天。

    3. 更多缓存设置请参考如何设置缓存过期时间
  2. 确认是否是本地缓存问题

    请清除浏览器缓存后再测试,确认是否是浏览器缓存的问题。

  3. 源站更新资源而CDN节点未刷新
    如果您的源站内容更新,没有在CDN执行刷新操作,CDN节点缓存的旧内容还未过期,此时用户请求依然会返回旧资源。您可以通过以下两种方式进行手动刷新。
    1. 登录华为云控制台,在服务列表中选择“CDN”,左侧菜单栏选择“预热刷新”,在缓存刷新页签完成刷新操作。
    2. 通过CDN服务所提供的缓存刷新、缓存预热API接口,主动调用CDN API接口来更新CDN缓存,详见API参考
  4. 排查是否是多个源站文件不一致导致
    • 源站使用了负载均衡设备,后端存在多个服务器且它们存放的文件不一致。
    • CDN添加了备源站,主源站和备源站的文件不一致。

    如果是以上两种情况导致,请您将源站侧资源统一,以免用户获得错误文件。

  5. 检查资源访问是否被劫持

    请排查您的资源访问是否被劫持,如果资源被劫持,请您通过配置HTTPS等方式提高您的安全防护等级。常见的判断劫持的方法如下:

    • 访问网站后响应302,但是location地址不是源站期望跳转的地址。可以通过在客户端浏览器Chrome上输入需要访问的URL,按F12,选择“Network”>“headers”>“Response Headers”>“location”查看。
    • 访问网站后,页面显示的内容不是您的业务内容。

如果排除以上几点后问题仍然存在,请提交工单处理。