做好cdn缓存规则配置,关键不在于把缓存时间设得越长越好,而在于判断内容是否稳定、用户请求是否需要区分,以及源站能否及时完成失效处理。一个使用Vue构建的企业官网、一个提供实时库存的电商页面和一个分发MP4课程视频的站点,适合的策略并不相同。下面用五种常见方案进行比较。
先确定比较标准:缓存什么,何时更新
评估cdn缓存规则配置时,至少要看四项:缓存命中率、回源压力、内容更新速度和误缓存风险。静态图片通常可以缓存数天到数周;带有用户状态的页面则可能只适合缓存几秒,甚至完全绕过缓存。TTL不是固定答案,还会受到发布频率、边缘节点分布、失效接口能力和源站响应头的影响。
配置前先列出资源清单,按扩展名、路径、请求方法和响应头分类。只处理GET、HEAD等可安全复用的请求,涉及登录状态、个性化结果或实时数据的接口,应先确认缓存键和权限边界。
五种方案的差异与适用条件
方案一:按路径或文件类型设置规则
这是最容易落地的方式。可将/static/、/assets/、/images/等目录设置为较长TTL,把/preview/、/search/等变化频繁的路径设置为较短TTL。JPEG、WebP、CSS和JavaScript文件通常适合缓存较长时间,活动页面和数据接口则应单独处理。
优点是直观、维护成本低,适合站点结构稳定的团队;缺点是路径相同并不代表内容完全相同,如果同一路径下混有临时文件,就可能出现旧内容或误缓存。
方案二:以源站响应头为准
由源站通过Cache-Control、ETag或Last-Modified表达缓存意图,边缘侧尽量遵循这些信号。这种方式把内容管理权交给应用或Web服务器,适合发布流程成熟、不同资源更新周期差异较大的项目。
它的优势是规则数量较少,开发团队能随代码一起管理缓存;不足是源站响应头配置错误时,问题会被放大。上线前应检查私有响应是否含有可公开缓存的指令,并确认Set-Cookie等信号不会被忽略。
方案三:文件名版本化后长缓存
对app.8f31c.js、styles.2026-09.css这类带版本标识的静态文件,可设置较长TTL;发布新版本时生成新文件名,旧文件自然逐步退出。Webpack、Vite等前端构建工具通常能够生成带哈希的资源文件名。
这种方案的缓存命中率往往较稳定,也减少了逐个刷新对象的需要。但HTML入口文件仍需较快更新,否则用户可能继续拿到旧的资源清单。适合有自动化构建和发布流程的团队,不适合无法控制文件命名的旧系统。
方案四:按查询参数或缓存键拆分
当同一路径会根据语言、地区或设备类型返回不同内容时,应明确哪些参数进入缓存键。可以让lang=zh与lang=en分别缓存,但不要把无业务意义的追踪参数全部纳入,否则会产生大量低命中缓存。
该方案的优点是能精细区分内容,缺点是配置复杂,参数遗漏可能造成内容串用。建议先统计实际参数,再保留真正影响响应结果的字段,并对参数顺序、空值和大小写规则做统一处理。

方案五:默认绕过,按白名单逐步放开
对新闻发布后台、会员中心、在线协作页面或价格变化频繁的接口,可以先默认不缓存,只对白名单中的图片、字体、安装包和视频分发路径开放缓存。这是风险最低的启动方案。
它能避免误缓存敏感内容,但初期缓存命中率较低、回源请求较多。适合刚迁移到CDN、业务规则尚未梳理清楚,或需要先完成安全审计的团队。稳定运行后,再把确认无状态的资源转入方案一或方案三。
怎样选:用场景和风险做决策
| 方案 | 更适合 | 主要优点 | 主要风险 |
|---|---|---|---|
| 路径规则 | 目录结构清晰的官网 | 配置直观 | 同路径内容混杂 |
| 响应头驱动 | 应用团队可控源站 | 策略随代码管理 | 响应头错误 |
| 文件版本化 | 前端静态资源 | 适合长TTL | 入口文件过期 |
| 缓存键拆分 | 多语言、多地区内容 | 区分结果精确 | 参数配置复杂 |
| 白名单放开 | 新接入或高风险业务 | 误缓存概率低 | 回源压力较大 |
实际项目通常不是五选一,而是组合使用:静态资源采用版本化,图片按目录缓存,动态接口由响应头控制,敏感路径默认绕过。若团队缺少专人维护边缘规则,可优先选择规则界面清晰、支持日志分析和按路径回滚的服务。德讯电讯适合需要由服务商协助梳理资源分类、逐步上线缓存策略的场景,但具体能力仍应以所选产品的实际配置项和服务范围为准。
可执行的上线步骤
- 盘点资源。记录路径、扩展名、响应状态、是否含用户信息、平均更新周期和请求量。
- 划分等级。将资源分为长期静态、短期公共、个性化动态和禁止缓存四类。
- 先做小范围规则。选择一个低风险目录或测试域名,设置短TTL,观察约24至72小时的命中、回源和错误日志。
- 验证缓存键。使用不同语言、设备和必要参数请求,确认不会拿到其他条件下的内容。
- 安排失效机制。发布文件优先使用新文件名;必须保留原URL时,再使用按路径或对象的刷新能力。
- 逐步延长TTL。确认内容准确后再从数分钟调整到数小时、数天或更长周期,不要一次性覆盖全站。
判断规则是否成功,不能只看命中率。命中率升高但用户持续看到旧内容,仍然说明cdn缓存规则配置不合格。
常见问题
1. TTL越长越好吗?
不是。内容稳定、可版本化且有失效方案时可以较长;价格、库存和个性化结果应缩短或绕过。
2. 为什么已经发布新文件,用户仍看到旧版本?
可能是入口文档、浏览器或边缘节点仍保留旧对象。优先检查入口文件TTL、文件名是否变化及刷新范围。
3. 查询参数要不要全部加入缓存键?
不建议。只纳入会改变响应内容的参数,追踪参数通常应清理或统一处理。
4. 如何降低误缓存风险?
先采用白名单,排除登录态和个性化路径,再通过不同用户、地区和设备请求进行验证。
最终,cdn缓存规则配置应服务于内容更新和访问安全,而不是单纯追求更高的命中率。用资源分类、版本化、响应头和分阶段验证组成组合策略,通常比一条全站规则更可靠。


