读完这篇,你会搞懂 CDN 是什么、为什么大网站打开那么快、以及你自己部署网站时怎么用上 CDN。
一个生活中的场景
你在北京点了一份外卖,商家在广州。骑手得从广州做好饭,然后一路骑车送到北京。等送到的时候,饭早就凉了。
但如果商家在北京有个分店呢?骑手从北京分店取餐,十分钟就送到了。
CDN 就是你在各个城市开的「分店」。
CDN,一句话说清楚
CDN(Content Delivery Network,内容分发网络)就是在全国(乃至全球)各地部署很多缓存服务器,让用户访问最近的那个,而不是大老远去访问你的源站服务器。
你的源站服务器只有一台,放在某个机房里。没有 CDN 的时候,所有用户都得到那一台服务器上取数据。广州的用户访问北京的服务器,数据要跨越几千公里,慢。
有了 CDN,你的网站内容会被复制到分布各地的 CDN 节点上。用户访问时,CDN 会自动把请求导向最近的节点,直接从那个节点返回内容,不用回源站。

没有 CDN vs 有 CDN,差别有多大
来看一组对比,

| 对比项 | 没有 CDN | 有 CDN |
|---|---|---|
| 访问路径 | 用户 → 源站(可能跨省) | 用户 → 最近的 CDN 节点 |
| 典型延迟 | 100-300ms | 10-30ms |
| 源站压力 | 所有请求都打到源站 | 大部分请求被 CDN 缓存拦截 |
| 抗故障能力 | 源站挂了全网不能访问 | CDN 缓存还能顶一阵子 |
| 带宽成本 | 源站承担全部流量 | CDN 承担大部分流量 |
差距很明显。这就像你开了一家店,顾客不管多远都得来总店买,还是你在各地开了分店让顾客就近购买的区别。
CDN 是怎么工作的
整个过程可以分成三步,
第一步,缓存。 CDN 从你的源站把静态文件(图片、CSS、JavaScript、字体等)拉取一份,存到各地节点上。这个过程叫「缓存」。
第二步,就近响应。 用户访问你的网站时,DNS 会把请求导向最近的 CDN 节点。如果这个节点上已经有缓存的内容,直接返回,不用去打扰源站。这叫「缓存命中」。
第三步,回源。 如果节点上没有缓存(第一次访问、缓存过期了),CDN 才会去源站取一次,取回来存好,再返回给用户。这叫「回源」。
打个比方——你在各地开了分店(CDN 节点),分店里卖的是总店(源站)的产品副本。顾客来了直接在分店买,不用等总店发货。如果分店暂时没货(缓存未命中),才从总店调货(回源),调来之后存着,下个顾客来了就能直接买。
什么内容适合走 CDN
CDN 主要加速的是静态文件——也就是那些不随用户变化、不需要实时生成的文件。
| 适合 CDN | 不适合 CDN |
|---|---|
| 图片(jpg、png、webp) | 用户登录(需要验证身份) |
| CSS 样式表 | 购物车(需要实时数据) |
| JavaScript 脚本 | 支付(需要安全连接) |
| 字体文件 | 搜索(需要实时结果) |
| 视频/音频 | 后台管理页面 |
| 固定的 HTML 页面 | 个性化推荐内容 |
简单记法——所有人看到的都一样的,放 CDN。每个人看到的不一样的,不走 CDN。
你什么时候会用到 CDN
你可能觉得 CDN 是大公司的事,跟我有什么关系。其实你已经在用它了,只是不知道。
场景一,部署网站。 你用 AI 写了个网站,部署到 Vercel、Netlify、Cloudflare Pages 这些平台。它们本身就自带 CDN。你部署的瞬间,你的网站已经被分发到全球几十个节点上了。你什么都没配置,CDN 就已经生效了。
场景二,用图片库。 你在网站里用了 Unsplash、Pexels 的图片,或者用了 GitHub 的图床。这些平台都通过 CDN 分发图片。你引用一个图片链接,图片是从离你最近的 CDN 节点传过来的。
场景三,引入前端库。 你在 HTML 里写 <script src="https://cdn.jsdelivr.net/npm/vue"></script>,这个 cdn.jsdelivr.net 就是一个 CDN 服务。Vue 的脚本从最近的节点加载,比从你服务器加载快得多。
场景四,配置自定义 CDN。 你的网站用自己的服务器部署(比如云服务器 + Nginx),想加速。你可以接入 Cloudflare(免费)或者阿里云 CDN(按量付费),把域名解析指向 CDN,CDN 自动帮你缓存和分发。配置过程不复杂,AI 可以全程指导。
常见疑问
CDN 和 hosting 有什么区别?
Hosting(主机/托管)是你放网站的地方,是你的源站。CDN 是在源站前面加了一层缓存节点。你需要先有 hosting 放网站,然后接 CDN 来加速。
CDN 缓存了旧内容怎么办?
CDN 节点上的缓存有过期时间(叫 TTL,比如 1 小时、1 天)。过了过期时间,下次有人访问时 CDN 会回源取最新内容。你也可以手动刷新缓存(叫 purge),大多数 CDN 平台都支持一键刷新。
Cloudflare 免费 CDN 够用吗?
对个人项目和小网站来说,Cloudflare 免费版完全够用。它提供全球 CDN、免费的 SSL 证书、基本的 DDoS 防护。等你流量大了再考虑付费版。
小结
| 概念 | 比喻 | 一句话解释 |
|---|---|---|
| CDN | 各地开分店 | 内容分发网络,让用户访问最近的节点 |
| 源站 | 总店 | 你的原始服务器 |
| CDN 节点 | 分店 | 分布各地的缓存服务器 |
| 缓存命中 | 分店有货 | 节点上已有内容,直接返回 |
| 回源 | 从总店调货 | 节点上没有,回源站取一次 |
| TTL | 保质期 | 缓存过期时间,过了就重新回源 |
| Purge | 强制下架 | 手动清空缓存,立即更新 |
下次再看到「CDN」「缓存」「回源」,你就想——分店、有货、调货。就这么简单。