在过去的几年里,互联网用户的数量急剧增加。仅 YouTube 就在全球拥有 20 亿用户,而 Netflix 拥有超过 1.6 亿用户。向如此广泛的用户群传输内容并非易事。可以认为,一种直接的方法可以是建立一个大型数据中心,将所有内容存储在服务器中,并将其提供给全球用户。但是当遵循这种方法时会出现问题——
- 首先,如果数据中心在美国而用户在印度,则内容交付速度会较慢。
- 其次,单个数据中心代表单点故障。
- 第三,如果某些内容是从偏远地区频繁访问的,那么它可能会遵循相同的链接,这反过来会导致带宽浪费。
CDN – 内容分发网络或内容分发网络是一种解决方案,可为分布在全球的用户提供更快的内容分发。
什么是 CDN?
CDN 本质上是一组战略性地分布在全球各地的服务器,目的是加速 Web 内容的交付。一个 CDN-
- 管理地理上分布在不同位置的服务器。
- 将 Web 内容存储在其服务器中。
- 尝试将每个用户定向到作为 CDN 一部分的服务器,以便快速交付内容。
CDN 是如何工作的?
为了最大限度地减少访问者与您网站服务器之间的距离,CDN 将原始内容的缓存版本存储在多个地理位置(也就是存在点/PoP)。每个 PoP 包含许多缓存服务器,称为边缘服务器,负责向其附近的访问者传送内容。 CDN 一次在多处缓存内容,确保内容快速交付。
让我们考虑一个例子:
假设您正在托管一个网站,其中您的源服务器(包含您网站数据的主要来源的服务器,托管网站文件的服务器)位于澳大利亚,XYZ 公司为您提供 CDN 服务。
当印度用户点击您网站上的视频时,请求会转到用户的本地 DNS 服务器(参见 DNS),该服务器将请求中继到您网站的权威 DNS 服务器。
权威 DNS 服务器然后识别出用户位于很远的地方,因此将请求中继到其 XYZ 的 DNS 服务器。现在 DNS 查询进入 XYZ 的网络,该网络向本地 DNS 服务器提供离用户最近的边缘服务器的地址。视频由该边缘服务器传送。
从这一点开始,本地 DNS 服务器知道边缘服务器的地址。因此,每当其网络内的用户从您的网站发送内容请求时,本地 DNS 服务器应将请求中继到边缘服务器。
由于 POP 位于用户附近,因此 CDN 最大限度地减少了将数据传送到用户浏览器所需的跃点数。
下图描述了相同的内容:
下图分别描述了使用和不使用 CDN 处理请求的方式之间的差异:
带 CDN(2 秒)
没有 CDN(5 秒)
参考:
- https://en.wikipedia.org/wiki/Content_delivery_network