CDN 是什么?为什么你的网站需要它

2026-07-14#CDN#缓存#性能优化

读完这篇,你会搞懂 CDN 是什么、为什么大网站打开那么快、以及你自己部署网站时怎么用上 CDN。

一个生活中的场景

你在北京点了一份外卖,商家在广州。骑手得从广州做好饭,然后一路骑车送到北京。等送到的时候,饭早就凉了。

但如果商家在北京有个分店呢?骑手从北京分店取餐,十分钟就送到了。

CDN 就是你在各个城市开的「分店」。

CDN,一句话说清楚

CDN(Content Delivery Network,内容分发网络)就是在全国(乃至全球)各地部署很多缓存服务器,让用户访问最近的那个,而不是大老远去访问你的源站服务器。

你的源站服务器只有一台,放在某个机房里。没有 CDN 的时候,所有用户都得到那一台服务器上取数据。广州的用户访问北京的服务器,数据要跨越几千公里,慢。

有了 CDN,你的网站内容会被复制到分布各地的 CDN 节点上。用户访问时,CDN 会自动把请求导向最近的节点,直接从那个节点返回内容,不用回源站。

CDN 分布式节点加速原理

没有 CDN vs 有 CDN,差别有多大

来看一组对比,

没有 CDN vs 有 CDN 对比

对比项没有 CDN有 CDN
访问路径用户 → 源站(可能跨省)用户 → 最近的 CDN 节点
典型延迟100-300ms10-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」「缓存」「回源」,你就想——分店、有货、调货。就这么简单。

评论