云堤CDN的缓存策略是指CDN节点如何决定对源站静态资源(如JS、CSS、图片、字体等)进行缓存、刷新和失效的规则配置。合理的缓存策略直接决定了CDN在边缘节点命中请求的概率,即静态资源命中率,从而影响页面加载时延、带宽成本与源站负载。
当用户请求资源时,CDN根据请求头、响应头(如Cache-Control、Expires、ETag、Last-Modified)以及自定义规则判定是否命中。如果命中,则由边缘节点返回缓存内容,未命中则回源获取并缓存。优化点在于延长可安全缓存的生命周期并减少不必要的回源。
评估命中率需要从CDN监控、日志与前端性能侧同时入手。先在云堤控制台查看整体命中率、回源数和请求分布;再结合边缘日志与源站日志做比对,定位高回源的URL或路径。
关注指标包括:总命中率、按资源类型分解的命中率、回源QPS、回源带宽、缓存失效率和TTL分布。使用云堤提供的统计报表、边缘日志导出以及第三方APM对照页面加载时间,便可定位问题资源。
包括:响应头未正确设置(无Cache-Control/Expires)、动态URL带有时间戳或随机参数、Cookie导致未缓存、文件频繁更新或版本管理不到位、及不合理的Cache-Control设置导致短TTL。
调整策略要兼顾缓存性和可控回源。第一步是对资源分组(静态/半静态/动态),为不同组设定不同TTL与缓存规则;第二是使用版本化(Query字符串或路径)管理更新;第三是针对页面级资源使用缓存规则覆盖、忽略Cookie或Query参数等。
1)梳理资源分类并定义策略表;2)在云堤配置默认缓存规则与针对路径的自定义策略;3)对不应缓存的请求(含Auth Cookie)设置回源或短TTL;4)启用Gzip/压缩和小文件合并以减少请求数量;5)使用预热(Prefetch/Warm-up)对新版本进行缓存预热。
推荐对静态资源设置长TTL(如7天到365天),并配合文件名或路径版本号;对第三方或不可控资源使用中等TTL;对动态接口设置不缓存或短TTL。必要时启用强制缓存(ignore query string)或自定义Header来提高命中。
对/*.js,/*.css,/*.woff2设置Cache-Control: public, max-age=2592000(30天),并通过文件名含版本号(app.v1.2.3.js)完成更新;对/api/*设置no-cache或max-age=0并启用Cache-Control: private。
常见问题包括缓存不生效、频繁回源、版本更新后访问到旧资源、以及某些地域命中率低。排查步骤是查看响应头、边缘日志、是否存在CDN规则冲突、并确认源站返回头是否干扰CDN缓存。
1)缓存不生效:检查响应头是否设置为no-store/no-cache或含Set-Cookie;2)频繁回源:确认URL是否带变化参数、是否被误认为动态资源;3)更新后仍为旧资源:使用版本化或强制刷新(cache-bust)、并结合预热策略;4)地域差异:检查POP节点配置、回源延迟及节点健康。
使用curl或浏览器开发者工具查看cache-related响应头;检查云堤边缘日志里的hit/miss统计;对疑难资源做请求追踪(trace)并比对各节点返回状态码与头部信息。
持续优化需要建立监控告警、定期审计和自动化发布流程。将命中率、回源QPS、缓存失效次数纳入SLA监控并设置阈值告警;在CI/CD中加入资源版本化和预热步骤;使用A/B测试评估改动影响。
1)在发布流程中自动生成静态资源清单并触发云堤预热API;2)定期审计缓存规则与日志,识别短TTL或低命中路径进行策略调整;3)对热点资源启用多层缓存或边缘计算(如边缘侧合并压缩)减少回源。
建议监控:总体命中率(目标>90%视业务而定)、按资源类型命中率、回源带宽/请求、单资源热点回源次数。告警阈值可设置为命中率下降超过5%或回源QPS异常增长。

结合云堤API实现规则管理、预热与日志导出;将边缘日志导入ELK/Prometheus/Grafana做可视化与告警;在CI流程中加入资源版本、manifest生成与预热调用,确保每次发布都不会影响命中率。