源站被回源打爆?中间源与回源收敛怎么做

2026-11-01 · 技术

缓存命中率九成还是 502,问题常出在回源这一个动作上。中间源、连接复用、回源鉴权、分层缓存,五个做法把源站压力压下来。

很多人看 CDN 后台,缓存命中率显示九成以上,可源站依然时不时 502,连接数一到晚高峰就顶满。问题往往不在命中率这个数字,而在回源这一个动作上:边缘节点数量多,每个节点在缓存未命中时都要自己去源站取一次,节点越多,回源请求越分散也越难收敛。 第一个做法是加一层中间源。让边缘节点只回源到固定的几台中间层服务器,由中间层统一回源站,并在中间层做二次缓存。这样源站看到的回源 IP 是固定的几个,连接数可控,缓存也能多命中一次;代价是多一跳延迟,通常只有几毫秒,对绝大多数站点可以接受。 第二个做法是回源连接复用与限速。回源链路开启长连接,避免每个请求都重新握手;对单个边缘节点到源站的并发回源数设上限,失败时做指数退避重试,防止某个节点在源站抖动时把请求放大成雪崩。 第三个做法是回源鉴权。源站只放行 CDN 的回源 IP 段,并在回源请求里带上校验头,边缘节点签发、源站校验。这一步能防止有人拿到源站 IP 后绕过 CDN 直接打源站,也是很多“CDN 明明开着还是被打挂”的真实原因。 第四个做法是分层缓存。静态资源用长缓存加文件名或版本号刷新,动态接口按业务容忍度设短缓存,购物车、支付、用户中心这类页面明确不缓存。缓存策略写清楚,比一味调大缓存时间更有效。 第五个做法是把监控补齐。除了命中率,还要盯回源率、回源 QPS、回源带宽和 5xx 比例,这四个指标比命中率更早暴露问题。 加速IDC 的 CDN 加速服务支持回源收敛与缓存策略配置,配合东南亚多节点覆盖,出海站点也能用同一套方式管理回源压力。