CDN,全称是 Content Delivery Network,中文叫内容分发网络。

它的核心作用很简单:把网站内容缓存到离用户更近的节点,让用户就近访问,而不是每次都直接访问源站服务器。

CDN 访问链路

一、为什么需要 CDN?

如果没有 CDN,所有用户都直接访问你的源站服务器。

比如你的服务器在广州:

  • 广州用户访问很快。

  • 北京用户可能稍慢。

  • 海外用户可能更慢。

  • 如果图片、CSS、JS 很多,源站压力也会变大。

CDN 的做法是:在全国甚至全球部署很多边缘节点,把静态资源缓存到这些节点上。

这样用户访问网站时,会优先访问离自己更近、网络质量更好的 CDN 节点。

二、CDN 的基本访问流程

用户访问:

https://www.example.com/logo.png

大致流程是:

  1. 浏览器查询域名解析。

  2. DNS 把请求调度到合适的 CDN 节点。

  3. CDN 节点检查本地有没有缓存。

  4. 如果有缓存,直接返回给用户。

  5. 如果没有缓存,CDN 回源到你的服务器获取资源。

  6. CDN 把资源缓存下来,再返回给用户。

CDN 缓存命中与回源

三、什么是边缘节点?

边缘节点可以理解为 CDN 厂商部署在各地的缓存服务器。

比如:

用户位置

可能访问的节点

北京

华北节点

上海

华东节点

广州

华南节点

成都

西南节点

用户访问的不是你的源站,而是 CDN 节点。
只有 CDN 节点没有缓存,才会回源访问你的真实服务器。

四、什么是缓存命中?

缓存命中就是:用户请求的资源,CDN 节点本地已经有了,可以直接返回。

状态

含义

HIT

命中缓存,不需要回源

MISS

没有缓存,需要回源

BYPASS

跳过缓存,直接回源

一般来说,静态资源适合缓存,比如:

  • 图片

  • CSS

  • JS

  • 字体文件

  • 下载文件

  • 静态 HTML

动态接口通常不适合长时间缓存,比如:

  • 登录接口

  • 支付接口

  • 用户信息接口

  • 后台管理接口

五、什么是回源?

回源就是 CDN 节点去你的源站服务器拿资源。

比如用户第一次访问一张图片:

https://www.example.com/a.jpg

CDN 节点发现本地没有这张图,就会去源站服务器请求它。拿到之后,CDN 会把它缓存下来。

下一次其他用户再访问这张图,如果缓存还没过期,就可以直接从 CDN 返回。

六、CDN 和 DNS、CNAME 的关系

CDN 通常通过 CNAME 接入。

比如:

主机记录

类型

www

CNAME

xxx.cdn-provider.com

意思是:

www.example.com 不直接解析到源站 IP,而是先指向 CDN 厂商提供的域名。

CDN 厂商再根据用户地区、运营商、节点负载,返回合适的边缘节点 IP。

需要注意:CNAME 不是网页跳转,不会改变浏览器地址栏。

七、CDN 能解决什么问题?

CDN 常见价值:

能力

说明

加速访问

用户就近访问边缘节点

降低源站压力

静态资源由 CDN 承担

隐藏源站 IP

用户通常只看到 CDN 节点

抗流量冲击

CDN 节点分担请求

HTTPS 证书托管

在边缘节点处理 HTTPS

安全防护

部分 CDN 提供 WAF、CC 防护、Bot 管理

八、CDN 不是万能的

CDN 很适合加速静态内容,但不是所有内容都会明显变快。

如果你的网站主要是动态接口,每次都要回源查数据库,那么 CDN 的加速效果会有限。

这时更重要的是:

  • 数据库优化

  • 接口缓存

  • 服务端性能

  • 源站地域选择

  • 页面静态化

CDN 是网站性能优化的一环,不是替代后端优化的万能药。

九、个人网站怎么配置比较合适?

个人博客、官网、文档站可以这样配置:

  1. HTML 可以短缓存,或者按发布频率设置缓存。

  2. 图片、CSS、JS 设置较长缓存。

  3. 文件名带 hash 的静态资源可以长期缓存。

  4. 后台、登录、接口路径不要随便缓存。

  5. www 和根域名统一做 301 跳转,避免重复收录。

  6. HTTPS 证书要同时覆盖主域名和 www 域名。

十、总结

CDN 的本质是:把内容分发到离用户更近的地方。

记住几个关键词就够了:

关键词

含义

边缘节点

CDN 厂商部署在各地的缓存服务器

缓存命中

CDN 本地有资源,直接返回

回源

CDN 没有资源,去源站获取

CNAME

把业务域名接入 CDN

源站

你真正的网站服务器

一句话总结:

CDN 不是让网站“换服务器”,而是在用户和源站之间加了一层就近缓存和流量调度。