很多网站接入CDN后,静态文件加载速度确实会改善,但这不代表配置已经安全。CDN与源站服务器配合时,边缘节点仍要按照既定规则访问源站;如果协议、端口、域名、证书或缓存条件不一致,CDN反而可能把异常请求集中转发给源站,放大带宽、连接数和应用负载风险。
先看清CDN与源站服务器各自负责什么
CDN主要负责就近响应、缓存内容、处理部分连接和安全策略,源站服务器则负责生成页面、处理登录、写入数据和返回未缓存内容。图片、CSS、JavaScript、字体等通常适合缓存;订单提交、个人资料、后台管理和实时接口通常不应被公共缓存。
这一区分决定了回源策略。缓存命中时,用户请求可能不需要到达源站;缓存未命中、缓存过期或被规则强制绕过时,边缘节点才会向源站发起请求。若所有请求都被设置为不缓存,CDN可能只承担转发作用,源站连接数并不会明显下降。
上线前重点核对五个连接条件
回源协议和端口
常见组合包括客户端使用HTTPS、CDN到源站也使用HTTPS,或客户端使用HTTPS而CDN到源站使用HTTP。后者配置简单,但源站链路的机密性和合规要求需要单独评估。若源站只监听443端口,回源却被设置为80端口,通常会出现502、连接拒绝或超时。
Host、证书与虚拟主机
源站服务器可能根据Host头选择站点。CDN回源时如果把Host改成IP地址或另一个域名,Apache HTTP Server、Caddy等Web服务可能返回默认站点。使用HTTPS回源时,还要确认源站证书覆盖CDN实际使用的回源域名;证书不匹配会导致TLS握手失败。
缓存键和动态参数
缓存键通常会受到路径、查询参数、请求方法和部分请求头影响。商品图片的尺寸参数可以纳入缓存键,但带有用户身份、购物车或权限信息的参数不能被粗略地当作公共内容。尤其要检查Cookie是否触发绕过缓存,否则一个本可复用的页面可能在每次访问时都回源。
源站访问控制
源站可以限制只接受CDN出口地址、专用回源域名或带有校验标记的请求,但地址段会随服务商和配置变化,不能永久依赖手工填写的旧列表。直接用源站IP访问时,应确认是否会绕过CDN规则;如果源站公网地址长期暴露,攻击者可能直接压垮源站。

客户端真实地址与日志
CDN通常会通过特定请求头传递客户端地址。源站必须只信任来自CDN的对应头部,不能无条件相信客户端自行提交的同名字段。否则访问控制、限速和审计日志都可能失真。应在Web服务器和应用日志中同时记录边缘节点地址、原始客户端地址、Host和请求ID。
一套可执行的核对流程
- 整理请求分类。把页面、图片、下载文件、登录接口、写入接口和管理路径分组,先标出允许缓存与必须回源的内容。
- 核对回源参数。逐项记录协议、端口、Host、SNI、超时时间和是否跟随重定向。源站实际监听端口应与CDN设置一致。
- 检查源站响应。分别测试200、301、403、404、500等状态,确认响应头中的缓存时间、ETag、Set-Cookie和Cache-Control符合预期。
- 做两轮访问。第一次访问用于观察未命中回源,第二次在相同地区和相同URL下观察命中情况。带不同查询参数、Cookie和请求方法的请求也要单独测试。
- 验证故障行为。在维护窗口内短暂停止测试源站或限制指定端口,确认CDN返回的是可预期的错误页面,而不是持续重试、循环回源或泄露源站信息。
- 收紧源站入口。确认业务正常后,限制非必要公网访问,保留运维所需的安全通道,并监测5xx比例、回源请求数、源站连接数和带宽变化。
容易被忽视的风险组合
第一种是回源重定向循环。CDN到源站使用HTTP,源站根据协议判断用户未使用HTTPS并返回301,CDN再次用HTTP访问,最终可能产生重复跳转。此时应正确传递并校验协议标识,或统一使用HTTPS回源。
第二种是错误缓存。若把带用户状态的响应设置为公共缓存,可能造成内容串用户;若把所有错误响应缓存过久,源站恢复后用户仍会继续看到旧的403或5xx。错误响应缓存时间通常应明显短于静态资源,具体仍取决于业务和CDN规则。
第三种是失效操作不完整。更新文件时只替换源站内容,不清理边缘缓存,用户可能在数分钟到数小时内继续获得旧版本,实际时间取决于TTL、刷新方式和节点状态。发布流程应包含版本化文件名、定向刷新以及回滚验证。
如何判断配置是否达到可用状态
可以用四项结果判断CDN与源站服务器是否真正配合起来:静态资源在第二次请求时能稳定命中;动态接口不会被公共缓存;源站只接受预期的回源请求;源站短时异常时,系统不会因CDN重试造成更大负载。对于登录、支付和管理操作,还应检查请求方法、Cookie、授权头和响应头是否原样满足应用要求。
最终不要只看首页能否打开。应同时检查不同地区、IPv4与IPv6、带参数和不带参数、已登录与未登录状态,并保留一份变更前后的配置记录。只有把缓存边界、回源路径和源站入口一起核对,CDN与源站服务器配合才能从“能访问”提升到“可控、可恢复”。
常见问题
接入CDN后,源站还需要公网IP吗?
不一定。若业务、运维和监控条件允许,可以减少源站公网暴露;但必须预留可靠的管理和故障处理通道,不能简单关闭所有入口后再失去维护能力。
动态接口能否全部绕过CDN?
可以作为保守方案,但会失去连接优化、限速和部分安全能力。更稳妥的做法是按路径、请求方法、Cookie和授权状态细分规则。
为什么源站访问正常,CDN却返回502?
常见原因包括回源端口错误、TLS证书或SNI不匹配、Host不正确、源站防火墙拒绝边缘节点,以及响应超时。应从CDN回源日志和源站访问日志同时定位。
修改缓存规则后多久生效?
配置发布通常需要等待平台同步,缓存内容还可能受原有TTL影响。重要页面应采用定向刷新或版本化URL,并在多个节点验证,而不是只在本地浏览器刷新。


