云服务器 + CDN 缓存策略优化实操指南
一 明确目标与衡量指标
- 核心目标:提升缓存命中率、降低回源率与源站带宽,并稳定TTFB与LCP等体验指标。
- 关键指标与查看方式:
- 字节命中率 =(边缘节点响应流量 − 回源边缘节点响应流量)/ 边缘节点响应流量;业务上重点看字节命中率。控制台提供资源监控(约5分钟粒度,约15分钟延迟)与实时监控(约1分钟粒度,约3分钟延迟);亦可用 API(如 DescribeDomainHitRateData / DescribeDomainRealTimeByteHitRateData)获取近90天/7天数据。命中状态日志字段:HIT/MISS(注意该字段表示L1 边缘节点命中状态)。当存在Range 分片回源时,更建议参考字节命中率评估效果。
二 缓存规则与键值设计
- 按资源类型分层设置缓存 TTL(示例为常见做法,可按业务微调):
- 高频稳定型:如图片、软件安装包,设置7–30天;并在活动/大版本发布前执行预热,高峰期显著降低回源。
- 中频波动型:如JS/CSS/活动专题,设置1–6小时;配合按路径/目录的精细化规则与定时刷新。
- 低频实时型:如API、用户中心、实时库存,设置0–5分钟或直接不缓存(no-cache)。
- 缓存键与参数治理:
- 开启忽略 URL 问号后参数(或仅白名单保留必要参数),避免同一资源因trackid/timestamp等可变参数生成大量无效副本,显著降低回源与存储浪费。
- 对大文件下载/视频点播,开启Range 分片回源,节点按需拉取对应字节范围,提升缓存与传输效率。
- 刷新与预热的配合:
- 资源更新:优先采用文件名加版本号/内容哈希(如 main.js?v=1.2.3 或 app.a1b2c3.js)实现“主动变更 URL”;如必须同名覆盖,则在发布后执行URL/目录/正则刷新。
- 运营活动/新包发布:先刷新清理旧副本,再预热将新资源推至边缘,用户首次访问即命中缓存。
- 生效时长与配额:刷新全网生效约5–6分钟;预热约5–30分钟(视文件大小/数量)。URL 刷新默认配额:每账号每日10000条、每次最多100条、每域名每分钟最多100条;目录刷新每账号每日100条;正则刷新每账号每日20条;URL 预热每账号每日1000条。建议在低峰期执行大规模刷新/预热,避免回源成本激增。
三 动态内容与回源优化
- 动态内容加速:对API/个性化页面启用动态内容加速(智能路由、链路优化),并开启HTTP/2 或 QUIC以提升并发与弱网表现。
- 边缘计算与局部缓存:利用边缘函数/Worker在边缘执行轻量逻辑(如A/B 实验、请求改写、简单聚合),对可复用结果设置极短 TTL(秒级)的边缘缓存,减少回源次数。
- 回源策略:配置主备源站与负载均衡(轮询/最少连接),对静态资源走CDN 边缘缓存,对动态请求按需回源;必要时使用共享缓存减少多域名重复存储。
四 传输压缩与内容优化
- 开启Gzip/Brotli压缩,优先使用Brotli获得更高压缩率;对已压缩格式(如 JPEG/MP4)不再压缩,避免无效 CPU 消耗。
- 图片优化:启用自动格式转换(WebP/AVIF)与按需尺寸/质量调整,减少体积与阻塞渲染的关键字节数,改善LCP与首屏体验。
五 监控排障与迭代流程
- 快速定位思路:
- 先判断是全网慢还是局部慢/单地区慢;结合ARMS/云监控按地区/运营商进行探测,识别是否为调度异常或链路质量问题。
- 核对加速区域是否匹配用户分布(如仅中国内地/全球/不包含中国内地),错误的区域会导致跨境调度与高时延。
- 检查DNS/LocalDNS配置是否导致跨网调度;必要时使用就近公共 DNS。
- 用浏览器开发者工具 Network定位具体慢的URL/资源类型,查看响应头(是否命中缓存、Cache-Control、Age 等)与Timing拆解(DNS/TCP/SSL/TTFB/下载)。
- 结合 CDN 命中状态日志(HIT/MISS)与命中率监控,验证规则是否生效与回源是否异常。
- 上线后的持续迭代:
- 建立发布—预热—验证流程:CI/CD 自动版本化资源并推送变更清单;活动前预热热点;上线后用curl -I或日志验证X-Cache/HIT;定期复盘命中率、回源率、带宽曲线,按资源类型滚动微调 TTL与规则优先级。