CDN加速是什么?它是如何工作的?

CDN测评 0 190

作为一个开发或者运维人员,你经常会看到 CDN 这个名词。CDN 是 Content Delivery Network 的缩写,译为“内容分发网络”。CDN 的好处有很多,包括:

  • 极大提高网站访问速度

  • 极大降低服务器压力

  • 让全国/全球用户都能访问你的网站

  • 隐藏真实的服务器

  • 避免网站服务器遭受黑客攻击

  • 防盗链

  • 降低网络带宽成本

  • 负载均衡,流量低谷不浪费资源,流量高峰轻松应对


这篇文章除了会讲解 CDN 的概念,还会告诉你 CDN 的工作原理。作为一个十年的老站长,我一直在使用 CDN,我将从实践的角度教你如何架构网站,以让网站更加适应于 CDN。

创作这篇文章,我参阅了大量的中英文资料,相信你一定会有所收获。OK,那就让我们开始吧。


151P25253-0.gif

什么是 CDN?

CDN 是一种用来分发内容的网络拓扑结构,在彻底搞明白它之前,我们需要先来理解另外两个名词。

1) 节点

让用户使用 CDN 网络之前,CDN 提供商会在全国/全球部署多个节点。这里的节点可以看做机房,或者服务器集群,专业的称呼是 PoP(Point-of-Presence,入网点)或者边缘服务器(Origin Server)。

每个节点用来服务它周围的用户,因为距离近,所以响应时间短。另外,节点是由很多服务器构成的集群,所以能够抗住巨大流量。

2) 源服务器

源服务器就是你部署网站的服务器,它为整个 CDN 网络提供初始内容。

不使用 CDN 的话,用户的每次请求都会到达你的源服务器。用户和源服务器之间的距离越远,数据包转发的次数就越多,等待页面加载的时间就越长。另外,数据包的每次转发都有可能受到网络拥堵的影响,进一步延迟网页加载时间。

访问境外网站时,距离远,网络拥堵,用户往往需要等待 3 秒以上,这是无法忍受的。

网站的每一秒都非常重要!研究表明,1 秒钟的延迟会导致转化率下降 7%,页面浏览量下降 11%,客户满意度下降 16%。

好了,现在让我们看看使用了 CDN 以后的网络请求流程是什么样的。

如果你的网站使用了 CDN 加速,当用户请求你的网站时,CDN 会找到离用户最近的节点,看看这个节点中是否缓存了用户想要的内容:

  • 如果节点缓存了用户想要的内容,就直接发送给用户,不用再去请求源服务器;

  • 如果节点没有缓存用户想要的内容,那么节点会自动请求源服务器获取想要的内容,然后再发送给用户;同时,节点也会把从源服务器获取的内容缓存起来,下次有用户再请求相同内容时,节点会直接发送给用户,而不用再去请求源服务器。


只有在用户第一次请求内容时,节点才会访问源服务器,以后用户(包括新用户和老用户)再去请求相同内容,因为节点已经缓存了,所以会直接发送给用户,不会再去访问源服务器,此时源服务器就被“屏蔽”了,它不会知道有用户请求内容。

页面从源服务器拉取内容的过程,专业术语叫做反向代理(Reverse Proxy),Nginx 就是一个著名的反向代理服务器。

向离你最近的服务器集群请求内容,这个速度是极快的,通常是秒级响应。C语言中文网魏雪原两个网站都使用了蜜蜂云的 CDN,你看它的响应速度多快。

现在全球有超过一半的流量由 CDN 提供,而且这个比例还在迅速上升。不使用 CDN,你很难把页面响应时间控制在 1 秒以内,让用户等待超过 1 秒的时间是非常不舒服的。

下图演示了使用 CDN 和不使用 CDN 的两种网络结构:


151P24237-1.png

也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。