先说结论:CDN 不是“一台更快的服务器”,而是一组分布式代理/缓存节点、调度、证书、缓存规则、回源和监控能力。大多数企业网站应先采用托管 CDN,用真实用户数据验证收益;只有在节点合规、流量规模、私有网络或特殊协议确实无法由托管产品满足,并且团队能维护多地域网络时,才值得自建。单台 Nginx 缓存服务器只能算反向代理或缓存节点,不是完整 CDN。

哪些业务需要 CDN?
| 业务 | CDN 价值 | 先验证 |
|---|---|---|
| 图片、CSS、JS、安装包 | 高 | 对象是否可缓存、用户分布、流量成本 |
| 全球企业官网 | 通常有价值 | 真实页面、TLS、缓存命中和源站位置 |
| 电商与登录后台 | 有条件 | 匿名页面与用户数据严格分开 |
| API | 取决于读写比例 | 鉴权、缓存键、幂等和数据实时性 |
| 大文件/视频 | 可能很高 | Range、回源、流量、版权和清理 |
| 只服务单一地区的小站 | 未必必要 | 源站已靠近用户且负载较低时先测收益 |
CDN 不能解决什么?
- 数据库查询、后端代码和第三方 API 本身过慢;
- 错误的 DNS、证书、缓存键和登录态设计;
- 所有 DDoS 规模与所有应用层滥用;
- 源站宕机且内容不能缓存的动态请求;
- 用户上传、写入和实时交互的全部延迟;
- 应用漏洞、弱密码和服务器未更新。
CDN 之后页面仍慢,应按网络、主机与应用分层诊断,不要只增加缓存时间。
缓存规则是核心,不是“全部缓存”
RFC 9111定义了 HTTP 缓存及 Cache-Control 等行为。常见策略:
| 内容 | 起点策略 | 风险 |
|---|---|---|
| 带内容哈希的静态资源 | 长 TTL,版本变化换 URL | 构建流程必须正确更新引用 |
| 普通图片/下载 | 中长 TTL,支持刷新 | 替换同 URL 后旧内容仍存在 |
| 公开 HTML | 短 TTL 或重验证 | 发布后刷新与个性化内容 |
| 登录、购物车、结账 | 默认不共享缓存 | 错误缓存可能泄露用户数据 |
| API GET | 按鉴权、参数和实时性设计 | 缓存键遗漏导致数据串用 |
| POST/写操作 | 默认不缓存 | 重试和幂等另行处理 |
Cloudflare 的官方 Cache-Control 文档也区分 no-store、private、max-age、s-maxage和重验证。具体 CDN 对源站头部的处理可能不同,必须按当前供应商文档测试。

托管 CDN 还是自建缓存节点?
| 维度 | 托管 CDN | 自建节点 |
|---|---|---|
| 上线速度 | 快,已有边缘网络 | 慢,要准备地域、BGP/DNS 和运维 |
| 覆盖 | 按供应商网络 | 由自己采购节点和线路 |
| 控制 | 受产品规则与套餐限制 | 可深度定制,但责任全部自担 |
| 安全 | 通常含证书、WAF 等能力 | 需要自建密钥、更新、限速和防护 |
| 成本 | 流量、请求、功能和回源计费 | 服务器、带宽、运维、故障与容量闲置 |
| 恢复 | 依赖供应商与配置导出 | 自己负责多节点、切换和演练 |
如果只有一个源站、流量不大和团队人手有限,托管 CDN 通常更可控。自建的理由应来自持续成本、私有网络、定制协议、数据边界或大规模稳定流量,而不是“买几台便宜 VPS”。
托管 CDN 上线步骤
- 记录上线前真实用户性能、源站流量、错误率与成本;
- 梳理域名、源站、证书、静态资源、登录态和 API;
- 先接入测试子域名,不立即代理全部生产流量;
- 配置源站 HTTPS、正确 Host/SNI 与健康检查;
- 仅缓存明确安全的路径,默认绕过登录和个性化内容;
- 验证 Cache-Control、Vary、Cookie、查询参数、Range 和 CORS;
- 限制源站管理端口,并评估是否仅允许 CDN 回源地址;
- 建立命中、回源、4xx/5xx、TLS、带宽和费用告警;
- 小流量灰度,验证刷新、回滚和 DNS TTL;
- 对比上线前后 P75/P95、错误率、源站减负和总成本。
自建最小方案包含什么?
如果业务确实需要自建,最小可用系统也不是一台代理:
- 至少两个故障相互独立的缓存节点;
- DNS 或全局流量调度与健康检查;
- 源站、回源认证和节点到源站的 TLS;
- 一致的缓存规则、配置发布和版本回退;
- 缓存刷新/预热、日志和指标汇总;
- 容量、磁盘淘汰、带宽、攻击和节点故障处理;
- 证书自动续期、密钥保护和节点退役;
- 源站直连或备用域名等紧急回退。
先从两个候选区域做 PoC,模拟节点故障、源站故障、错误缓存和证书续期。未通过恢复演练前,不称为生产 CDN。
如何验收 CDN?
| 类别 | 指标 |
|---|---|
| 用户体验 | DNS、TLS、TTFB、LCP、下载与 API P95 |
| 正确性 | 登录隔离、缓存键、刷新、Range、CORS 和版本发布 |
| 源站 | 请求下降、带宽下降、回源错误和连接复用 |
| 可靠性 | 边缘 5xx、源站 5xx、回退、切换和证书 |
| 成本 | 流量、请求、功能、日志、回源和攻击流量 |
| 安全 | 源站暴露、WAF、限速、密钥和日志访问 |
自建节点如何选择 VPS?
节点地域应跟随用户而不是跟随团队所在地,端口、持续带宽、月流量和磁盘缓存比“核数越多越好”更重要。可按海外地域选择、测试 IP 验收和带宽说明建立候选。确认是合法自有业务后,可在萤光云 VPS 产品页核对当前节点与配置。
常见问题
CDN 会自动缓存所有页面吗?
不会,也不应该。具体行为取决于响应头、规则、Cookie、状态码和供应商默认设置。
用了 CDN 就不需要源站备份吗?
需要。缓存不是权威数据副本,不能替代数据库和文件备份。
一台反向代理算 CDN 吗?
通常不算。它缺少分布式节点、调度、故障转移和统一运维能力。







