接入外部 CDN 后源站要注意什么
发布时间:2026-01-03 21:44       
更新时间:2026-01-04 00:40
CDN(内容分发网络)挡在源站前面之后,源站看到的世界变了:日志里全是节点 IP,缓存决定用户拿到新旧内容,证书也多了一层。接入后把这几件事重新过一遍。
一、回源规则配清楚
CDN 控制台里的回源配置有三项容易错:回源 Host(CDN 回源时请求头里带的域名,可以和用户访问的域名不同)、回源协议(用 http 还是 https 回源)、是否跟随重定向。配错的表现很典型:回源 403 通常是回源 Host 和源站虚拟主机不匹配;跳转死循环多半是源站强制 https 而回源协议却设成了 http。
二、拿到用户真实 IP
源站日志里记录的是 CDN 节点 IP,安全分析和限流都会失真。nginx 用 realip 模块还原:
set_real_ip_from 203.0.113.0/24; # 换成 CDN 官方公布的回源网段
real_ip_header X-Forwarded-For;
配置生效后,日志和 $remote_addr 就变回用户真实 IP,发一个测试请求验证,日志里显示你自己的公网 IP 才算配对。应用层从 X-Forwarded-For 取值时取第一个可信段,不要直接信任客户端伪造的整条链。
三、缓存策略与刷新
配缓存的第一原则:接口路径不缓存,HTML 谨慎缓存,图片、CSS、JS 长缓存。改了源站文件但用户拿到旧内容时,要么调 CDN 的刷新接口清缓存,要么改 URL 用版本号绕开,后者优先。CDN 控制台能看到缓存命中率和回源量,接入后每天瞄一眼,命中率突然下跌往往对应源站的某次改动。接口和页面分开域名的话,缓存规则也分开配,接口域名整域设为不缓存,省得逐路径排查。
四、证书与访问控制
用户侧的证书配在 CDN 上,源站自己的证书保留用于回源链路,两张证书到期时间不同,都要盯,日历提醒比人脑可靠。源站侧的防护规则要同步放行 CDN 节点网段,否则回源请求会被当成攻击拦掉,表现为整站 403。接入后最值得做的一步收紧:安全组里把源站 443 和 80 只放行 CDN 的回源网段,防止有人绕过 CDN 直接扫源站。