15 10 月 2026

网站打开慢、图片加载转圈、跨省访问延迟高——上 CDN 是最便宜的提速手段,小站甚至有用免费额度的。这篇讲 CDN 怎么选、怎么配、缓存怎么调、源站怎么保平安,NAT 型服务器和动态网站的特殊情况都有覆盖。

需要现成的游戏云服务器,可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,建站和游戏服都能快速部署。

一、CDN 解决什么问题

CDN = 内容分发网络:把你的静态资源缓存到全国各地的节点,用户从最近的节点拿数据。

没有 CDN有 CDN
全国用户都连你的源站用户连本地节点,源站只面对 CDN
跨省延迟 50~200ms同城/同省 5~20ms
源站带宽被打满静态流量走 CDN,源站带宽省下来
源站 IP 暴露源站只对 CDN 回源 IP 开放, hiding

适合 CDN 的内容:图片、CSS/JS、字体、安装包、视频。不适合:登录后的动态接口、实时游戏数据、频繁更新的 API。

二、CDN 怎么选

类型代表费用适合
云厂商 CDN阿里云 CDN/DCDN、腾讯云 CDN、七牛按量,小站月费几块正规业务、要备案域名
免费/公益 CDNCloudflare(国际)、jsDelivr(开源库)免费额度个人博客、海外访问、开源项目
自建 CDN多台机器+GeoDNS机器成本有技术、要掌控

国内访问选国内 CDN(节点多、需备案域名);海外用户选 Cloudflare(免费版足够个人站);两个都要就分层:国内走阿里/腾讯 CDN,海外走 Cloudflare。

混合方案与静态分离见静态网站部署与 CDN 加速,纯静态站甚至可以整个丢对象存储+CDN,源站只留动态部分,见对象存储分离静态资源。

三、配置流程(以通用步骤为例)

  1. 添加域名:CDN 控制台添加加速域名,如 cdn.example.com
  2. 配源站:填源站 IP 或域名(你的服务器地址)
  3. 改 DNS:把 cdn.example.com 的 CNAME 指向 CDN 分配的地址
  4. 等生效:DNS 生效后,请求就开始走 CDN 了
# 验证 CDN 是否生效:看响应头里的节点信息
curl -I https://cdn.example.com/style.css
# 常见头: X-Cache: HIT(命中缓存) / MISS(回源)
#       Via / X-Cache-Provider 等平台标识

HTTPS 别忘了:CDN 上也要配证书(多数平台免费提供),否则混合内容报错。证书部署见SSL 证书与 HTTPS 部署。

四、缓存策略:CDN 的灵魂

缓存配错了,要么不生效(全回源,慢)要么更新了用户看不到(缓存旧版)。

4.1 按文件类型配 TTL

文件类型建议缓存说明
图片/字体/视频30 天带 hash 文件名可更长
CSS/JS(带版本号)30 天app.a3f2b1.css 这种
CSS/JS(无版本号)1 小时更新频繁的
HTML5 分钟~不缓存内容页随时在变
API/动态接口不缓存登录态、个性化内容

4.2 源站配合:Cache-Control 头

Nginx 给静态资源加缓存头,CDN 会尊重:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, max-age=2592000, immutable";
}

4.3 强制刷新(缓存了旧内容)

# CDN 控制台 → 刷新缓存 → 提交 URL 或目录
# 命令行(阿里云示例)
aliyun cdn RefreshObjectCaches --ObjectPath "https://cdn.example.com/style.css"

根治办法:文件名带 hash。构建时生成 style.a3f2b1.css,内容变 hash 就变,用户永远拿到新版,缓存可以设一年。Webpack/Vite 默认就是这么干的。

五、源站保护:CDN 不是免费盾

上了 CDN 后,源站 IP 依然要保护——攻击者可以绕过 CDN 直接打源站。

  1. 源站只放行 CDN 回源 IP 段(各平台文档有 IP 列表),安全组见云服务器安全组配置实战
  2. 隐藏源站 IP:解析历史、邮件、证书透明度(crt.sh)都可能暴露,定期查自己域名
  3. 回源鉴权:CDN 回源时带 token,源站校验,防直接访问
  4. 防盗链:图片被别的站点白嫖,流量你买单
# 源站 Nginx 只允许 CDN 回源(示例,IP 段换成你平台的实际列表)
location / {
    allow 103.21.244.0/22;    # 示例段
    allow 2400:cb00::/32;
    deny all;
}

被攻击的完整处置见云服务器被攻击怎么办。

六、NAT 型服务器用 CDN 的特殊点

NAT 型没有独立公网 IP,但CDN 回源填的是公网 IP+端口映射:

  • CDN 源站配置填 http://公网IP:映射端口
  • 确认 NAT 映射的 80/443 端口指向内部 Web 服务
  • 回源协议按映射实际情况选 HTTP/HTTPS
  • 映射规则见NAT 端口映射完全指南

如果 NAT 只映射了高位端口,CDN 源站要带端口写;有些平台对非标端口支持不好,优先映射 80/443。

七、效果验证与排错

# 1. 多地点测速(用工具对比 CDN 前后)
#    itdog.cn / boce.com 输入域名看全国节点延迟

# 2. 确认命中缓存
curl -I https://cdn.example.com/app.a3f2b1.css | grep -i "x-cache\|age\|cache-control"

# 3. 回源带宽应该接近 0(静态全命中)
#    在源站看 nginx 日志,CDN 回源请求占比
现象原因解法
一直 MISS源站 Cache-Control 是 no-cache改源站响应头
更新了还是旧的缓存 TTL 太长刷新缓存 + 文件名加 hash
部分用户正常部分异常DNS 缓存/本地运营商等 TTL,或换 DNS 服务商
CDN 后变慢了节点选错/回源绕远换 CDN 区域配置、检查源站地域
费用超预期被盗链/被刷防盗链 + 带宽封顶告警

八、动态网站的折中方案

全站 CDN 不现实,动静分离最实际:

静态: cdn.example.com  → CDN → 源站 /static 目录
动态: www.example.com  → 源站(只开 80/443 给 CDN)

WordPress/Typecho 都有 CDN 插件,一键改静态资源地址,配合网站图片优化效果更明显。速度测试方法见网站速度测试工具与方法。


CDN 是性价比最高的网站优化:一顿饭钱让全国访问都快一倍,还能藏住源站。配好缓存策略 + 源站保护,就是又安全又快的正经架构。

需要现成的游戏云服务器,可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,建站快速部署。延伸阅读:Nginx 反向代理与多站点配置、网站打开慢排查流程、域名解析与 DNS 记录详解。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:僵尸进程与 CPU 异常排查实战:load 飙高找不到元凶时看这篇
  2. 下一篇:Nginx 伪静态与重写规则实战:rewrite、return、location 全讲清
发表评论 9