CDN通过边缘缓存拦截用户请求、减少回源,显著降低源站带宽压力;缓存命中率越高,源站负担越小,理想回源流量比应低于15%。

CDN 能直接降低源站的带宽压力,核心在于“把请求拦在边缘、让数据少走远路”。它不改变源站本身,而是通过分布式的缓存节点承接大量用户访问,大幅减少回源流量。
缓存命中率是关键指标
用户请求的内容如果已在 CDN 边缘节点缓存(即缓存命中),就完全不需要访问源站——数据直接从离用户几十公里的节点发出,源站零带宽消耗。缓存命中率越高,源站承受的带宽压力就越小。比如一张被频繁访问的 Banner 图,1000 次访问中若有 950 次命中 CDN 缓存,源站只需响应 50 次,带宽压力下降 95%。
- 静态资源(图片、CSS、JS、字体、视频切片)应设为长期缓存(如 Cache-Control: public, max-age=31536000)
- 动态内容可按需设置较短缓存时间或启用私有缓存+ ETag 验证
- 定期查看 CDN 后台的缓存命中率报表,低于 85% 时需检查缓存规则是否合理
控制回源行为,避免无效穿透
不是所有请求都该回源。CDN 默认对未缓存、缓存过期或不可缓存的内容发起回源,但有些请求本不该走到源站——比如爬虫高频刷接口、恶意扫描、重复的 OPTIONS 预检请求。这些会虚增回源流量,抬高带宽成本。
- 在 CDN 控制台配置 IP 黑名单或 UA 过滤,拦截已知恶意流量
- 对非 GET/HEAD 请求(如 POST、PUT)默认不缓存,避免误回源写操作
- 开启“回源跟随 302”或“回源重定向限制”,防止跳转链路过长导致多次回源
压缩与传输优化,进一步压降回源体积
即使必须回源,CDN 也能在回源路径上做减法:它可对源站返回的内容自动启用 Gzip/Brotli 压缩,并支持 HTTP/2 回源连接复用,显著缩小传输数据量。
- 确保源站返回响应头包含 Vary: Accept-Encoding,让 CDN 正确缓存压缩/未压缩版本
- 开启 CDN 的“智能压缩”功能(如阿里云“Gzip 自动压缩”、腾讯云“Brotli 优先”)
- 对图片类资源,可启用 CDN 的实时 WebP 转换或自适应分辨率,回源只取原图,分发时再压缩适配
结合监控看真实带宽节省效果
不能只看 CDN 流量,要对比“源站出向带宽”在启用前后的变化。重点关注两个数据:
- 回源流量比 = 回源流量 ÷(回源流量 + 用户端接收流量),理想值应低于 15%
- 源站峰值带宽:CDN 上线后,源站带宽曲线应明显平滑,突发峰值被削平
若某天源站带宽突增,可结合 CDN 日志查具体是哪些 URL 或地区触发了集中回源,快速定位缓存失效或热点内容未预热问题。

















