CDN 是 Content Delivery Network 的缩写,中文译为内容分发网络。它把网站的静态内容复制到分布在多地的节点上,让访问者从较近的节点获取数据,从而减少等待时间。
它解决的是什么问题
服务器通常位于某一个地方。距离越远,数据传输经过的环节越多,打开页面所需的等待时间越长。当访客分布在不同地区时,单一服务器很难让所有人都获得同样的速度。
CDN 的做法是在多地部署节点。用户请求内容时,由系统就近分配一个节点来响应。第一次请求后内容会在该节点留存一段时间,附近的后续访问可以直接从这里取,不必每次都回到源服务器。
由此带来几方面的变化
- 访问更快:数据从更近的地方传来,页面显示得更快。
- 源站压力下降:大部分重复请求由节点承担,源服务器只需处理回源和动态请求。
- 可用性提升:节点之间相互独立,个别节点故障不会导致整体不可用。
- 带宽开销减少:节点分担流量后,源服务器的带宽占用相应下降。
- 一定的安全作用:常见的安全防护能力通常可以一并启用,源站地址也不再直接暴露。
什么情况下值得使用
访客分布较广、页面包含大量图片或视频、或者访问量存在明显峰值的网站,从 CDN 获得的改善通常比较明显。反之,如果访客集中在同一地区、网站规模很小,带来的提升相对有限,需要权衡成本。
配置时需要注意
- 缓存策略:哪些内容可以长期缓存、哪些必须每次回源,需要按内容类型区分设置。
- 内容更新:页面更新后,需要确认缓存是否及时失效,否则访客可能仍看到旧内容。
- 地址配置:通常通过调整解析记录接入,接入方式会影响原有配置,操作前应做好记录。
- 效果验证:上线后实际测一遍不同地区的打开速度,以数据判断是否达到预期。
一句话理解
CDN 不改变网站内容,只是把内容放到离访客更近的地方。它解决的是“距离”带来的速度问题,而不是页面本身是否臃肿的问题。
