阿里云 CDN 静态文件不回源更新的解决方法

🌙
手机阅读
本文目录结构

核心关键

阿里云 CDN 静态资源不更新的解决方法,可以通过配置刷新和预热来解决;

这个问题是因为我第一次使用阿里云的 CDN 产品,不熟悉他的套路,现在用一篇文章记录一下;

(以前使用又拍云的时候,云存储和 CDN 是自动配好的;静态资源更新的时候,CDN 会自动回源更新,不需要开发者再做什么)

场景描述

使用阿里云的 CDN ,阿里云的 OSS 作为 CDN 的源,CDN 的范围是全球加速;

OSS 上的文件更新了,但是通过 CDN 配置的域名访问,拿到的还是旧文件;

现象如下:

  • OSS 上的文件是:https://xxx-public.oss-cn-hangzhou.aliyuncs.com/path/aaa.js
  • CDN 配置路径是:http://xxx.axihe.com/path/aaa.js

测试场景

  • 浙江杭州 - 电信
  • 北京 - 电信
  • 香港服务器(没有留意是什么网络服务商)

我们需要做的,就是让 CDN 的资源更新;

解决办法

需要配置 CDN 刷新和预热

CDN 提供资源的刷新和预热功能。

通过刷新功能,您可以强制 CDN 节点回源并获取最新文件;

通过预热功能您可以在业务高峰期预热热门资源,提高资源访问效率。

下面记录刷新和预热功能的配置方法;

背景信息

阿里云 CDN 刷新和预热功能支持 URL 刷新、目录刷新、URL 预热;

CDN 提供资源的刷新和预热功能。通过刷新功能,您可以强制 CDN 节点回源并获取最新文件;通过预热功能您可以在业务高峰期预热热门资源,提高资源访问效率。刷新和预热功能的原理、生效时间及可参考的 API 接口。

CDN 提供的资源的刷新和预热功能的概念如下:

刷新功能是指提交 URL 刷新或目录刷新请求后,CDN 节点的缓存内容将会被强制过期,当您向 CDN 节点请求资源时,CDN 会直接回源站获取对应的资源返回给您,并将其缓存。刷新功能会降低缓存命中率。 预热功能是指提交 URL 预热请求后,源站将会主动将对应的资源缓存到 CDN 节点,当您首次请求时,就能直接从 CDN 节点缓存中获取到最新的请求资源,无需再回源站获取。预热功能会提高缓存命中率。 刷新和预热功能的详细说明如下表所示。

分类 原理 生效时间 API 接口
URL 刷新 通过提供目录下文件的方式,强制 CDN 节点回源获取最新文件。 5 分钟内 RefreshObjectCaches
目录刷新 通过提供目录及目录下所有文件的方式,强制 CDN 节点回源获取最新文件。 5 分钟内 RefreshObjectCaches
URL 预热 将指定的资源主动预热到 CDN 的二级节点上,用户首次访问即可直接命中缓存。 5 分钟内 PushObjectCache

操作步骤

  1. 登录 CDN 控制台

  2. 在左侧导航栏,单击刷新预热

  3. 在刷新缓存区域,您可以根据所需,配置刷新或预热信息。

    参数 说明
    操作类型 操作类型包括:
    • 刷新

      您可以在源站资源更新后,刷新 URL,系统自动清除 CDN 节点上的垃圾数据,下次访问 URL 时,直接回源获取最新数据,并缓存到 CDN 节点。

    • 预热

      您可以在业务高峰前预热热门资源,也可以预热流量较低的加速域名,来提高缓存命中率。

    刷新类型 刷新类型包括:
    • 目录

      操作类型选择刷新时,需要选择该参数。

    • URL

      操作类型选择刷新预热时,需要选择该参数。

    URL 当您需要刷新或预热多条请求时,请按照一行一个URL进行输入。配置URL时,不同操作类型的注意事项如下:
    • 目录刷新

      输入的URL,需以http://https://开始,以/结束。

      同一个ID每天最多提交100个刷新请求,一次可全部提交。

    • URL刷新

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

      同一个ID每天最多提交2000个刷新请求,每次最多只能提交1000条。

    • URL预热

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

      同一个ID每天最多预热500个URL,每次最多只能提交100条。

  4. 单击提交。

  5. 单击操作记录。

  6. 在操作记录区域,配置查询时间、操作类型、域名或 URL,单击查询。

您可以查看资源刷新或预热的详细记录,包括:操作内容、操作类型、操作时间、状态和进度。

API 接口

您可以调用 API 接口,实现资源的刷新和预热,详情如下表所示。

API 描述
PushObjectCache 调用 PushObjectCache 将源站的内容主动预热到 L2 Cache 节点上,您首次访问可直接命中缓存,缓解源站压力。
DescribeRefreshQuota 调用 DescribeRefreshQuota 查询刷新、预热 URL 及目录的最大限制数量,以及当日剩余刷新、预热 URL 及目录的次数。
DescribeRefreshTasks 调用 DescribeRefreshTasks 查询刷新、预热状态是否在全网生效。
RefreshObjectCaches 调用 RefreshObjectCaches 刷新节点上的文件内容。刷新指定 URL 内容至 Cache 节点,支持 URL 批量刷新。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了