最近处理一个出海电商站点的问题,运营反复反馈:改了首页 banner、发了新版本 APP 安装包,海外用户还是打开旧页面、下载到旧包。源站看文件都对,就是用户端不对。一查,全是缓存没刷新闹的。
CDN 为了提速把静态资源缓存在边缘节点,TTL 没到之前,节点就一直返回旧缓存。这个机制本身没问题,问题在于发布流程里漏了 "缓存刷新" 这一步。今天把这套实操流程完整梳理一遍。
一、先分清三个概念
- 缓存刷新(Purge):清掉边缘节点的旧缓存,让用户下次请求回源拉新。
- 缓存预热(Prefetch):主动把新资源推到节点,让用户直接命中缓存。
- 缓存过期(TTL):资源自动过期的时限,靠 Cache-Control 头控制。
发布更新,通常组合用:先刷新清旧,再预热推新,效果最好。
二、什么时候必须做缓存刷新
- 发布新版本,改了 HTML、JS、CSS、图片、安装包;
- 修复了线上问题,希望用户立刻看到修复后的版本;
- 活动页上线 / 下线,不想让用户看到过期活动;
- 源站资源变更了,但想让节点尽快同步。
三、刷新范围怎么选(踩坑重点)
| 刷新方式 | 适用场景 | 注意点 |
|---|---|---|
| URL 单条刷新 | 只改了某个具体文件 | 最精准,开销最小 |
| 目录刷新 | 整个目录下的资源都变了 | 注意目录下含大量静态资源会引发回源洪峰 |
| 全站刷新 | 整个站点大版本更新 | 慎用,会清空全部节点缓存,短时回源暴增 |
踩坑提醒:很多人一上来就全站刷新,结果短时间所有节点同时回源,源站直接被打满,海外访问反而更慢。能精准刷就精准刷。
四、发布流程建议(自动化)
1. 构建产物生成
2. 上传源站
3. 调用CDN刷新API,清理变更资源的旧缓存
4. 可选:调用预热API,将核心资源推到重点区域节点
5. 校验节点缓存命中状态,确认新版本已生效
360CDN 提供刷新 API,可以在 CI/CD 里接入,发布完成自动触发,不用每次手动去控制台点。
五、刷新后怎么验证生效
- 用 curl 带请求头测试,看返回的节点是否是新版本文件;
- 在控制台查看刷新任务状态,确认已完成;
- 抽查不同区域节点,确认全球都更新到位。
六、常见 FAQ
Q:刷新后还是看到旧版本? A:可能刷新范围没覆盖到该资源,或刷新任务还没完全生效,重新核对 URL、等待任务完成后重测。
Q:全站刷新会有什么风险? A:短时间所有节点回源,源站压力骤增,海外用户可能变慢。建议分目录、分优先级刷新。
Q:缓存刷新和清理浏览器缓存是一回事吗? A:不是。CDN 缓存刷新清的是边缘节点缓存,浏览器缓存要另外处理(比如资源加版本号)。
总结:出海业务资源更新频繁,缓存刷新是发布流程里不能少的一步。精准刷新、避免全量清空、配合预热、接入自动化,才能让 "更新可见" 和 "访问提速" 两头都占住。
参考:360CDN 官方缓存刷新 / 预热文档

1007

被折叠的 条评论
为什么被折叠?



