CDN 配置指南:静态站点的加速、缓存与防护
作者:夸父
静态导出的站点天然适合上 CDN:全球加速、扛流量峰值、隐藏源站。本文讲 CDN 的接入配置、缓存规则设计、与防盗链/限流的安全配合。
CDN 的接入方式
两种拓扑按场景选:源站型(CDN 回源到你的 nginx 服务器——动态 /api 请求也能代理转发,全站加速)与对象存储型(CDN 直接回源 OSS 的静态文件——静态内容加速,API 走独立域名)。逐日 AI 静态导出站 + 同域 API 反代的架构,推荐源站型:域名 CNAME 到 CDN 分配的地址,源站配置在 CDN 控制台,HTTPS 证书在 CDN 侧部署(或保持源站证书 + 全链路加密回源)。
缓存规则的设计
静态导出站的缓存规则很简单但很值钱:
| 路径 | 缓存策略 | 理由 |
|---|---|---|
| /_next/static/* | 缓存 1 年(immutable) | 文件名带哈希,内容不变 |
| 图片/字体 | 缓存 30 天 | 内容基本不变 |
| *.html | 缓存 5~10 分钟 | 内容会更新,短缓存兼顾新鲜度 |
| /api/* | 不缓存(回源) | 动态请求 |
缓存命中率上去后,回源带宽与源站压力断崖式下降——这是 CDN 费用的主要回收点。
安全的配合项
隐藏源站 IP:接入 CDN 后,源站 IP 不再对外暴露(域名解析指向 CDN)——源站防火墙只允许 CDN 回源节点访问,攻击者绕过 CDN 直打源站的路径被切断。防盗链:图片与视频资源配 referer 白名单。限流:CDN 侧对 /api 路径配 QPS 限制,防刷保护源站。用量告警:流量异常(被刷/被薅)第一时间知道。
上线验证清单
CDN 接入后走一遍:各页面 200 → 静态资源命中缓存(响应头看 x-cache: HIT)→ HTTPS 正常 → /api 正常(登录与 SSE)→ 缓存刷新功能可用(内容更新后手动刷 HTML 缓存)。五项全绿,CDN 上线完成。
常见问题
静态站有必要上 CDN 吗?
看受众分布:观众集中在国内某区域时,一台 nginx 足够;受众分散或含海外访问时,CDN 的加速明显。另外 CDN 顺带解决两个问题:流量峰值扛压与源站 IP 隐藏。
CDN 的费用怎么估?
按流量计费(约 0.2~0.3 元/GB 量级)。视频内容多的站流量大,配缓存规则(静态资源长缓存、HTML 短缓存)能省一半以上。开用量告警,防刷。


