CDN 是什么?一篇精简入门笔记
CDN,全称是 Content Delivery Network,中文叫内容分发网络。
它的核心作用很简单:把网站内容缓存到离用户更近的节点,让用户就近访问,而不是每次都直接访问源站服务器。
一、为什么需要 CDN?
如果没有 CDN,所有用户都直接访问你的源站服务器。
比如你的服务器在广州:
广州用户访问很快。
北京用户可能稍慢。
海外用户可能更慢。
如果图片、CSS、JS 很多,源站压力也会变大。
CDN 的做法是:在全国甚至全球部署很多边缘节点,把静态资源缓存到这些节点上。
这样用户访问网站时,会优先访问离自己更近、网络质量更好的 CDN 节点。
二、CDN 的基本访问流程
用户访问:
https://www.example.com/logo.png
大致流程是:
浏览器查询域名解析。
DNS 把请求调度到合适的 CDN 节点。
CDN 节点检查本地有没有缓存。
如果有缓存,直接返回给用户。
如果没有缓存,CDN 回源到你的服务器获取资源。
CDN 把资源缓存下来,再返回给用户。
三、什么是边缘节点?
边缘节点可以理解为 CDN 厂商部署在各地的缓存服务器。
比如:
用户访问的不是你的源站,而是 CDN 节点。
只有 CDN 节点没有缓存,才会回源访问你的真实服务器。
四、什么是缓存命中?
缓存命中就是:用户请求的资源,CDN 节点本地已经有了,可以直接返回。
一般来说,静态资源适合缓存,比如:
图片
CSS
JS
字体文件
下载文件
静态 HTML
动态接口通常不适合长时间缓存,比如:
登录接口
支付接口
用户信息接口
后台管理接口
五、什么是回源?
回源就是 CDN 节点去你的源站服务器拿资源。
比如用户第一次访问一张图片:
https://www.example.com/a.jpg
CDN 节点发现本地没有这张图,就会去源站服务器请求它。拿到之后,CDN 会把它缓存下来。
下一次其他用户再访问这张图,如果缓存还没过期,就可以直接从 CDN 返回。
六、CDN 和 DNS、CNAME 的关系
CDN 通常通过 CNAME 接入。
比如:
意思是:
www.example.com 不直接解析到源站 IP,而是先指向 CDN 厂商提供的域名。
CDN 厂商再根据用户地区、运营商、节点负载,返回合适的边缘节点 IP。
需要注意:CNAME 不是网页跳转,不会改变浏览器地址栏。
七、CDN 能解决什么问题?
CDN 常见价值:
八、CDN 不是万能的
CDN 很适合加速静态内容,但不是所有内容都会明显变快。
如果你的网站主要是动态接口,每次都要回源查数据库,那么 CDN 的加速效果会有限。
这时更重要的是:
数据库优化
接口缓存
服务端性能
源站地域选择
页面静态化
CDN 是网站性能优化的一环,不是替代后端优化的万能药。
九、个人网站怎么配置比较合适?
个人博客、官网、文档站可以这样配置:
HTML 可以短缓存,或者按发布频率设置缓存。
图片、CSS、JS 设置较长缓存。
文件名带 hash 的静态资源可以长期缓存。
后台、登录、接口路径不要随便缓存。
www和根域名统一做 301 跳转,避免重复收录。HTTPS 证书要同时覆盖主域名和
www域名。
十、总结
CDN 的本质是:把内容分发到离用户更近的地方。
记住几个关键词就够了:
一句话总结:
CDN 不是让网站“换服务器”,而是在用户和源站之间加了一层就近缓存和流量调度。
CDN 是什么?一篇精简入门笔记
https://lautung.com/archives/dyqgCF2B
评论