课程笔记:CDN 刷新与预热
课程名称:计算机网络应用 核心摘要:本讲围绕阿里云 CDN 控制台的核心管理功能展开,重点讲解"刷新(Refresh/Purge)"与"预热(Preload)"两大缓存管理机制。刷新用于源站更新后强制 CDN 边缘节点缓存过期并回源拉取最新资源;预热用于新业务上线前由源站主动将资源推送到 CDN 节点,从而提升首访命中率和用户体验。
一、 核心概念与原理
1.1 CDN 控制台功能概览
CDN 控制台提供丰富的管理功能,日常常用的核心功能集中在以下几个方面:
- 缓存刷新与预热(本讲重点)
- 回源配置
- 缓存配置
- 访问控制
- 性能优化
- 视频相关配置(针对视频类 Web 应用)
- 安全相关配置
补充说明:控制台还提供数据监控、日志服务、工具集以及安全防护等功能,其中部分高级安全防护能力需要单独购买。
1.2 核心术语定义
| 术语 | 说明 |
|---|---|
| 源站(Origin Server) | 存放原始静态/动态资源的服务器,是 CDN 回源获取数据的源头 |
| 边缘节点(Edge Node) | CDN 分布在各区域的缓存服务器,直接响应用户请求 |
| 回源 | CDN 节点缓存未命中或过期时,向源站请求最新资源的过程 |
| 缓存命中率 | 用户请求直接由 CDN 节点缓存命中的比例,命中率越高性能越好 |
| 刷新(Refresh/Purge) | 强制 CDN 节点指定资源缓存过期,下次请求时触发回源 |
| 预热(Preload) | 源站主动将资源推送到 CDN 节点缓存,用户首访即可命中 |
1.3 刷新与预热的基本原理
- 刷新与预热本质上是 源站 与 CDN 边缘节点服务器 之间协同工作的两种机制。
- 两者都集中在 阿里云 CDN 控制台 下进行操作,提交任务后约 5 分钟 生效。
- 控制台界面分两个区域:
- 左侧:刷新/预热操作提交区
- 右侧:操作记录查询区(以表格 Grid 形式展示提交时间、状态、进度等)
二、 技术细节与协议分析
2.1 刷新(Refresh / Purge)机制详解
工作流程:
- 管理员在 CDN 控制台提交刷新请求(指定 URL 或 目录)
- CDN 节点中对应的缓存内容 立刻被强制过期
- 当用户请求该资源时,CDN 节点因缓存过期而 回源
- CDN 节点从 源站 获取最新资源并重新缓存到本地节点
- 将最新资源响应给用户
关键特性:
- 刷新会 降低缓存命中率(因为强制清除了已有缓存)
- 支持两种刷新粒度:URL 刷新 和 目录刷新
- 某一个区域节点完成回源后,不代表其他区域节点也已完成更新;各边缘节点需各自回源拉取
- 例如:广东边缘节点已更新,新疆边缘节点仍为过期状态,需独立回源
URL 刷新示例:
https://edu.lagou.com/static/js/index.js
https://edu.lagou.com/static/js/index2.js
https://edu.lagou.com/static/css/style.css
提交上述 URL 刷新后,5 分钟生效。此后用户访问包含这些资源的页面或直接请求该 URL 时,对应边缘节点上该资源被强制过期,触发回源获取最新版本并重新缓存。
目录刷新说明:
- 当更新的资源数量较多且集中在同一目录下时,可提交 目录刷新
- 只要 CDN 节点中加载的资源涉及该目录,均会被强制回源获取最新文件
- URL 刷新针对单个资源,目录刷新针对一批资源
2.2 预热(Preload)机制详解
工作流程:
- 管理员在 CDN 控制台提交预热请求(仅支持 URL,不支持目录)
- 源站主动 将对应的资源 推送 并缓存到 CDN 各节点
- 当用户首次请求时,可直接从 CDN 节点缓存中获取最新资源
- 无需回源,省去了用户请求触发回源的步骤
关键特性:
- 预热会 提升缓存命中率
- 预热仅支持 URL 方式提交,不支持目录
- 数据流向与刷新相反:预热是 源站 → CDN 节点 的主动推送;刷新是 CDN 节点 → 源站 的被动回源
- 类似于系统启动时的缓存预热(如限流场景下系统刚启动缓存未就绪,先以较低 QPS 运行,待缓存建立后再逐步放量)
2.3 刷新 vs 预热 对比
| 对比维度 | 刷新(Refresh / Purge) | 预热(Preload) |
|---|---|---|
| 核心作用 | 强制 CDN 缓存过期,触发回源更新 | 源站主动推送资源到 CDN 节点 |
| 数据流向 | CDN 节点 → 源站(被动回源) | 源站 → CDN 节点(主动推送) |
| 触发时机 | 用户请求时发现缓存过期才回源 | 提交后立即推送,无需等待用户请求 |
| 提交方式 | 支持 URL 和目录 | 仅支持 URL |
| 对缓存命中率影响 | 降低(清除已有缓存) | 提升(提前建立缓存) |
| 典型使用场景 | 源站静态资源更新后同步 CDN | 新业务/活动上线前提前缓存高频资源 |
| 生效时间 | 约 5 分钟 | 约 5 分钟 |
| 每日上限 | URL:2000 条;目录:100 条 | URL:500 条 |
| 每次提交上限 | URL 刷新每次最多 200 条 | — |
注:以上限额参考阿里云 CDN 默认配额,实际额度可能因账号等级不同而调整,以控制台显示为准。
三、 实践应用与配置命令
3.1 操作入口
阿里云 CDN 控制台 → 刷新预热页面:
- 左侧 Tab:提交刷新 / 预热任务
- 右侧 Tab:操作记录查询(可查看提交时间、任务状态、进度等)
3.2 刷新操作步骤
- 选择操作类型为 刷新
- 选择刷新方式:URL 或 目录
- 输入或批量导入待刷新的 URL / 目录路径
- 单击 提交
- 等待约 5 分钟生效
- 在右侧操作记录中查看任务状态与进度
批量提交技巧:
建议提前将多条 URL 汇总到一个 TXT 文件中,便于管理与存档:
# refresh_urls.txt —— 待刷新 URL 清单
https://edu.lagou.com/static/js/index.js
https://edu.lagou.com/static/js/index2.js
https://edu.lagou.com/static/css/index.css
https://edu.lagou.com/static/img/logo.png
在控制台提交界面可直接将 TXT 文件 拖拽 到输入框,URL 会自动填充显示。
3.3 预热操作步骤
- 选择操作类型为 预热
- 输入待预热的 URL(仅支持 URL)
- 单击 提交
- 等待约 5 分钟生效
- 在右侧操作记录中查看任务状态
预热使用场景示例:
- 即将上线新的高频访问活动页面 → 提前预热活动静态资源
- 发布重要版本更新 → 预热新版本 JS/CSS/图片等资源
- 避免批量用户首访时集中回源造成源站压力和体验下降
3.4 常见提交失败原因
- 域名不存在或不属于当前用户:提交的 URL 域名未在当前阿里云账号下接入 CDN,任务会失败
- 超出每日限额:提交数量超过每日上限会被拒绝
- URL 格式不规范:需使用完整的
http://或https://开头的 URL
四、 重点与难点提示
考点 / 面试题
简述 CDN 刷新与预热的区别?
- 答:刷新是强制 CDN 缓存过期,用户请求时触发回源,降低命中率;预热是源站主动推送资源到 CDN 节点,用户首访即可命中,提升命中率。刷新支持 URL 和目录,预热仅支持 URL。
刷新和预热的数据流向有何不同?
- 刷新:CDN 节点 → 源站(被动回源)
- 预热:源站 → CDN 节点(主动推送)
刷新和预热的生效时间分别是多少?
- 均约为 5 分钟。
CDN 刷新的两种方式及区别?
- URL 刷新:针对单个资源,粒度细
- 目录刷新:针对目录下所有资源,适合批量更新场景
预热的使用场景有哪些?
- 新活动上线、高频资源发布前,提前将资源推送到 CDN 节点,避免首访回源。
易错点
- 易混淆点:刷新降低命中率,预热提升命中率(方向相反,需牢记)
- 易忽略点:刷新后各区域边缘节点需 各自独立回源,一个节点更新不代表全网节点已更新
- 限额记忆:URL 刷新每日 2000 条(每次最多 200 条),目录刷新每日 100 条,预热每日 500 条
- 预热不支持目录:仅能通过 URL 提交预热任务
- 域名归属校验:提交的 URL 域名必须属于当前账号下已接入 CDN 的域名,否则任务失败
五、 课后疑问/遗留问题
- 思考题:如果在源站频繁更新资源,频繁执行刷新操作会对 CDN 缓存命中率和源站负载产生什么影响?应如何平衡刷新频率与缓存效率?
- 思考题:预热任务推送资源到 CDN 节点时,是否会推送到所有边缘节点?还是仅推送到部分节点?如何控制预热覆盖范围?
- 后续内容提示:下节课将讲解 CDN 的 回源配置、缓存配置 以及 访问控制 等高级功能,进一步理解 CDN 的完整管理体系。
- 扩展学习:了解阿里云 CDN API 中刷新与预热接口的调用方式,实现自动化运维(CI/CD 流水线中集成刷新/预热脚本)。