什么是CDN?内容分发网络如何为网站加速

CDN本身并不托管网站的主要内容——它把内容的部分副本复制到在物理位置上更靠近访问者的服务器上,从而缩短数据需要传输的距离。

源服务器 vs 边缘服务器

"源服务器"是网站文件实际存放的主服务器。CDN维护着一个分布在众多地理位置上的"边缘"服务器网络,这些边缘服务器会把内容的缓存副本存放在离访问者更近的地方。

为什么物理距离会影响加载时间

数据是通过实体电缆和连接线路以有限的速度传输的,因此某个地区的访问者向另一个大洲的服务器请求文件时,即使两端的网络连接都很快,也会比向附近的服务器请求文件经历更长的延迟。

CDN通常会缓存哪些内容

那些不会因访问者不同而变化的静态资源——图片、视频、样式表、脚本和字体——是最容易也最常被缓存到边缘节点的内容。个性化或频繁变动的内容,通常仍然需要回源到源服务器获取。

缓解流量高峰的冲击

由于许多访问者是由分散的边缘服务器提供服务,而不是直接冲击源服务器,CDN也能降低源服务器本身承受的负载,帮助网站在流量突然激增时依然保持响应速度。

安全方面的附带好处

许多CDN服务还会在大规模流量攻击(比如拒绝服务攻击)到达源服务器之前,对其进行过滤或吸收,因为这个分布式网络的总体承载能力远超单一源服务器,能够更好地消化突发的流量峰值。

为什么几乎所有大型网站都会使用CDN

如果没有CDN,无论访问者身处何地,全球所有用户的请求都要发往同一台源服务器,这既会拖慢距离较远访问者的加载速度,也会造成负载过度集中在一点上。把这种负载在地理上分散开来,是在大规模场景下提升网站感知速度最具成本效益的方式之一。

缓存也带来了自身的复杂性

由于边缘服务器存放的是内容副本,而不是每次都去获取最新版本,网站所有者必须自行管理内容的缓存时长,以及底层文件发生变化时如何让缓存失效,否则访问者在更新后短时间内仍可能看到过时的内容。

常见问题

使用CDN是不是意味着网站就不再需要自己的服务器了?

不是。真正的内容管理和更新工作仍然在源服务器上进行;CDN是位于其前端的一个缓存和分发层,并不能替代源服务器。

小型网站需要CDN吗?

对于流量较小、受众地理位置相对集中的网站来说,CDN的重要性会低一些,但即便是较小的网站,也常常会为了提速以及流量吸收带来的安全性好处而使用CDN,因为许多CDN服务都提供免费或低成本的方案。