CDN 加速的关键不是把域名“接入”按钮点亮,而是让合适的请求走边缘节点、让可共享的资源缓存、让不能共享的数据始终安全回源。下面以 Cloudflare 的常见网站代理流程举例,其他 CDN 的产品名与缓存默认值可能不同。
DNS 代理和 DNS only,有什么差别?
使用 CDN 代理时,访客请求域名会先到 CDN 的边缘网络,再由边缘缓存或回源获取内容。DNS only 只返回源站地址,HTTP/HTTPS 流量不会经过该 CDN 代理。Cloudflare 官方说明可代理用于解析地址的 A、AAAA、CNAME 记录,而 MX、TXT 等记录并不代理;切换前要核对业务是否要求直连源站,例如邮件服务与一些第三方验证。

先为资源分类,再制定缓存规则
| 内容类型 | 建议起点 | 主要风险 |
|---|---|---|
| 带版本号的 CSS、JS、图片 | 可按发布流程设置较长缓存并使用新文件名更新 | 修改文件但 URL 不变可能导致旧资源残留 |
| 公开文章 HTML | 根据更新频率审慎考虑边缘缓存和清理流程 | 登录态或个性化信息不可与公开页面混用 |
| 登录页、购物车、账户资料 | 应避免被共享缓存保存,检查 Cache-Control: private 或 no-store 等策略 |
配置错误会造成隐私数据泄露 |
| API | 逐接口分析授权与请求方法,默认不要盲目全站缓存 | 返回数据过期或越权访问 |
max-age、s-maxage、no-cache、no-store 含义不同,且供应商的页面规则可能覆盖源站响应头。no-cache 允许存储但重用前需验证;no-store 才是不应存储。Cloudflare 的 Edge Cache TTL 与 Browser Cache TTL 也不是同一件事,清除边缘缓存不能删除用户浏览器里已有的缓存。
接入前后核对的四件事
- 确认域名已生效且期望的 A/AAAA/CNAME 记录处于代理模式,留意 DNS 传播及可能的 IPv6 地址。
- 确认 CDN 到源站的 HTTPS 验证、证书有效性和源站防火墙放行规则,不应为了“修好 HTTPS”而长期关闭证书校验。
- 在浏览器 Network 面板和响应头检查缓存状态,首次 MISS 后未必一定 HIT,要结合资源是否符合规则、是否携带 Cookie 与请求头判断。
- 比较不同地点的 TTFB 与静态资源加载时间;若源站应用慢,单纯接入 CDN 不能消除所有回源等待。
常见故障与回退
DNS 正常但没有缓存:检查代理状态、资源类型与 Cache-Control;更新后仍显示旧内容:检查边缘/浏览器 TTL 与版本化文件名;重定向循环或证书报错:优先核对 CDN 到源站的 TLS 模式、Nginx 代理识别头与站点强制 HTTPS 规则。
生产变更前记录原有 DNS 与缓存规则,分批启用并保留回退路径。性能基线可结合本站 网站加载速度优化指南,反向代理细节可参考 Nginx 配置实例。关键原理可查 DNS 代理文档、缓存控制与 缓存时间说明。




