摘要:按阿里云与腾讯云 CDN 公开文档,梳理缓存键(Cache Key)怎么影响命中、状态码要不要缓存、以及刷新与预热的差别与回源成本边界。查询日期 2026-10-16;只放官网普通链接(affiliate_later)。

依据:阿里云《自定义 Cache Key》《刷新和预热资源》《状态码缓存过期时间》;腾讯云《缓存键规则配置》《刷新预热问题》。查询日期:2026-10-16(北京时间)。只放官网普通链接(affiliate_later);不写单价,回源流量费以各云账单为准。

站点接了 CDN 却仍觉得「又慢又贵」,多半不是「没开 CDN」,而是 缓存键不一致 → 命中率低 → 狂回源,或 源站改了文件却忘了刷新。站内已有 Cloudflare 免费 CDN、WordPress 提速(缓存插件+CDN)、可用性监控;本文专讲 回源链路里三块规则:缓存键、状态码缓存、刷新/预热。

一、先分清:回源、命中、缓存键

概念一句话常见坑
命中(HIT)边缘节点直接返回已缓存副本误以为「开了 CDN 就一定 HIT」
回源(MISS/过期)节点向源站(或上层)拉内容再给用户参数乱七八糟导致同一文件缓存成 N 份
缓存键(Cache Key)节点用来标识「这是不是同一个文件」的 ID默认常是完整 URL(含 query);键一变就当新文件

动态接口(购物车、个人中心 API)一般不该当静态资源去拉高命中率;CDN 文档也常提醒:自定义 Cache Key 主要优化静态资源。动态加速要另看边缘计算/动态加速产品,别指望改几个参数解决。

二、阿里云:自定义 Cache Key vs 忽略参数

阿里云帮助中心写明:Cache Key 默认多为客户端请求 URL(带参数);自定义 Cache Key 只改缓存标识,不改回源 URL——回源内容仍与客户端请求一致。若要改回源查询串,应另配「回源参数改写」。

CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云《自定义 Cache Key》:忽略参数与自定义 Cache Key 的对照配置(保留/删除参数示例,2026-10-16 截图)

文档建议优先用自定义 Cache Key(功能更全),并注意:

  • 与「忽略参数」同时配时,忽略参数会失效;
  • 配了自定义 Cache Key 后,按「裸 URL」提交刷新可能对不上——应提交规则处理后的缓存键;
  • 典型场景:把无意义的追踪参数从键里去掉以合并缓存;或把 Accept-Language 等 Header 拼进键,让中英文页面分开缓存。
CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云文档说明:自定义 Cache Key 不修改回源 URL,仅修改缓存标识(2026-10-16 截图)

三、状态码也要不要缓存?

源站返回 404/302/5xx 时,若节点把异常状态码缓存过久,用户会长时间看到「错的结果」;若完全不缓存,源站又会被打穿。阿里云提供 状态码缓存过期时间:在源站已返回异常状态码时,指定节点对该状态码的缓存动作与时长;2xx 资源仍按常规「缓存过期时间」走。

CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云《配置状态码过期时间》文档开篇:异常状态码可由 CDN 直接响应,过期后重新回源(2026-10-16 截图)

实务建议(按站点类型微调):

  • 404:可短缓存(分钟~小时级),避免扫描器打爆源站,但改完路径要能较快恢复;
  • 301/302:看你是否会改跳转目标——易变则短缓存或按文档关闭长缓存;
  • 5xx:通常极短或按产品默认,避免把故障页「锁」在边缘。

具体可配状态码列表以控制台为准。

四、刷新 vs 预热:别混着用

阿里云口径

  • 刷新:让节点上的旧缓存失效(URL 刷新直接删文件缓存;目录/正则默认多为标记过期,回源可能带条件请求头,源站回 304 则继续用旧副本;要无条件清可用 API Force=true)。
  • 预热:节点按 URL 列表主动回源拉取,降低首波访问压力;默认可先落到回源层,不保证所有 L1 立刻命中。
CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云《刷新和预热资源》:资源刷新适用场景与标记刷新说明(2026-10-16 截图)
CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云:资源预热机制——主要降低源站压力,不保证全部 L1 立即命中(2026-10-16 截图)

费用边界:刷新/预热操作本身文档写明不收操作费,但由此产生的回源流量/请求会按源站(如 OSS、ECS 带宽)计费——大批量请放在低峰并分批。

CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
阿里云费用说明:刷新预热不收操作费,回源流量与请求可能产生费用(2026-10-16 截图)

腾讯云口径

腾讯云《缓存键规则》强调:参数会影响内容时不要乱忽略;不影响内容时可「全部忽略」或「保留指定参数」(例如保留 version、忽略时间戳)。

CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
腾讯云《缓存键规则配置》文档相关说明截图(2026-10-16)

《刷新预热问题》FAQ 把差别写得很直白:刷新删除全网节点该资源缓存,下次访问回源;预热提前拉到节点。配额与生效时间(URL 刷新约 5 分钟量级、预热视文件大小约 5–30 分钟等)以当前文档表为准。源站变更后,节点不会主动实时同步——过期前仍可能吐旧缓存,所以发版要配合刷新。

CDN 回源与缓存规则入门:缓存键、状态码与刷新预热(2026)-有序
腾讯云 FAQ:刷新与预热区别、配额与生效时间、源站变更不会主动实时更新缓存(2026-10-16 截图)

发版常用顺序:先刷新(必要时 Force)→ 再预热热点 URL。缓存未过期时只预热,可能仍命中旧副本——先问「键是否一致、刷新是否命中该键」。

五、回源排障 8 项清单

  1. □ 用 curl -I 看 X-Cache / Age / Via(字段名因厂商而异)——区分 HIT 与 MISS。
  2. □ 同一文件是否因 query/Header 被拆成多个 Cache Key。
  3. □ 是否误把 HTML/API 设了超长缓存。
  4. □ 404/302/5xx 的状态码缓存是否过长。
  5. □ 源站改文件后是否提交了与 实际缓存键一致 的刷新 URL(含鉴权参数时先去掉签名参数)。
  6. □ 目录刷新是否只是标记过期(304 仍留旧副本)——紧急清理考虑强制刷新。
  7. □ 预热是否提交了文件级 URL(不支持目录预热的平台不要填 /static/)。
  8. □ 回源流量暴涨时对照账单突然变高与对象存储防盗刷。

证书与多站点入口可另看 免费 HTTPS 证书、Nginx 反向代理多站点;被打满带宽时先看 CC/DDoS 止血。

相关阅读

风险提示

错误的缓存键或过长的状态码缓存会导致脏数据、SEO 与安全风险;大规模刷新/预热可能拉高回源账单。配置以各云控制台与帮助中心当前页为准;本文不构成采购或架构承诺。