CDN 原理与选型
High Contrast
Dark Mode
Light Mode
Sepia
Forest
3 min read654 words

CDN 原理与选型

你的服务器在美国,但用户在东南亚。没有 CDN,每次请求都要跨太平洋,延迟高达 200ms+。CDN 把内容缓存在离用户最近的节点,延迟可以降到 20ms 以内。


CDN 工作原理

graph TD subgraph 没有 CDN U1[用户 - 新加坡] -->|200ms| S1[源服务器 - 美国] end subgraph 有 CDN U2[用户 - 新加坡] -->|15ms| E[CDN 边缘节点 - 新加坡] E -->|缓存命中| U2 E -->|缓存未命中| S2[源服务器 - 美国] S2 -->|内容| E end

CDN 的核心机制: 1. 用户请求 https://example.com/image.jpg 2. DNS 把请求导向最近的 CDN 边缘节点 3. 边缘节点检查缓存:命中 → 直接返回;未命中 → 回源服务器获取并缓存 4. 下次同地区用户请求同一资源,直接从边缘节点返回


CDN 的核心价值

价值 说明
降低延迟 从离用户最近的节点返回内容
减少源服务器压力 大量请求由 CDN 边缘处理,不到达源服务器
抵御 DDoS 攻击 分散流量,隐藏源服务器 IP
全球加速 静态资源(图片、CSS、JS)全球快速访问
自动 SSL CDN 统一处理 HTTPS,简化证书管理

主流 CDN 对比

CDN 免费计划 节点数 特点 适合场景
Cloudflare ✅ 有(功能全) 300+ 城市 全套安全 + 性能,免费计划非常强 独立站、SaaS、博客
AWS CloudFront 12 个月免费 400+ 节点 深度集成 AWS 服务 AWS 生态用户
Akamai 4000+ 节点 企业级,最全球 大型企业
Fastly 60+ 节点 配置灵活,实时缓存清除 技术团队强的公司
BunnyCDN 110+ 节点 价格低($0.01/GB) 价格敏感的独立开发者

独立站和中小型 SaaS 的推荐Cloudflare,免费计划足够覆盖大多数需求。


哪些内容适合 CDN 缓存

类型 CDN 缓存 说明
图片(PNG、JPG、WebP) ✅ 强烈推荐 体积大,访问频繁
CSS、JavaScript ✅ 推荐 静态资源,变化少
字体文件 ✅ 推荐 不变动的静态资源
HTML 页面 ⚠️ 谨慎 动态内容慎用,需要仔细设置缓存规则
API 响应 ⚠️ 谨慎 用户个性化数据不能缓存
购物车、支付页面 ❌ 不要缓存 必须实时,缓存会导致数据混乱

CDN 与 DNS 的关系

接入 CDN 后,你的域名 DNS 需要指向 CDN,而不是直接指向服务器:

graph LR A["example.com\nDNS: CNAME → CDN"] --> B[CDN 边缘节点] B -->|源服务器 IP(隐藏)| C[你的服务器] B -->|缓存内容| D[用户浏览器]

Cloudflare 的优势:同时作为 DNS 托管商和 CDN,切换只需要把 DNS 代理状态从灰色云(仅 DNS)改为橙色云(DNS + CDN 代理)。


下一节Cloudflare 接入实战——从 DNS 托管到性能优化的完整配置步骤。