What Is a CDN and How Does It Work?(译)
原文地址:What Is a CDN and How Does It Work?
CDN –您会不断看到这个缩写单词。 也许在URL中,也许在登录页面中,但从未被关注过-什么是内容交付网络,它们的作用是什么?
我们将在这篇概述文章中进行说明,并在后续帖子中演示两个受欢迎的文章。
CDN基础
CDN是传递内容的计算机网络。
更具体地说,这是一堆服务器,它们存在于某些Web内容的原始服务器和用户发出请求的服务器之间,所有这些服务器的目的都是通过减少延迟来更快地交付内容。 这是他们的主要目的。
这些在地理位置上较近的服务器(也称为PoP或存在点)也缓存可缓存的内容,从而减轻了原始服务器的许多负担。 不同的CDN类型提供不同类型的服务,并且它们可以具有不同的网络拓扑:分散的CDN旨在使分散的服务器数量尽可能多 尽可能遍布世界各地。 Akamai就是这样的CDN之一。 合并的CDN具有较少的点,但为网络性能,吞吐量和DDoS抵抗而构建的点较大。
CDN的类型
我们说过,CDN的主要目的是减少延迟并加快渲染速度。 但是,在现代世界中,2MB图像和500kb JavaScript库在网站上需要3分钟才能启动,这种延迟几乎无关紧要。 但是随着时间的推移而发展,CDN也有其他用途。
面向内容的CDN
最初,CDN仅用于静态内容(JS,CSS,HTML)。 您必须在创建/上传内容时向他们推送内容(他们不知道他们需要使用您的内容来更新其缓存,即使有人请求也是如此)。
然后,他们添加了origin pulling,使事情变得更加自动化–这意味着用户请求CDN的URL,然后 CDN自动请求原始网站的URL,缓存返回的内容。 此外,有效性成为重要的因素。 现在,许多CDN都缓存了网站的“最后存在”状态,因此,如果原始内容变少了,用户仍然可以访问CDNed内容,从而产生了稳定的幻象,直到一切恢复正常为止。
此外,现代CDN经常会提供自动优化层,这些层会根据请求的图像大小自动调整图像大小并保存以备将来使用。 这意味着,如果您的网站有2MB的标题图片,并且有人在300px宽的屏幕上请求它,那么CDN会复制一个大小为30kb,宽度为300px的副本,并在将来将其提供给所有移动用户,从而自动使网站速度更快 。
面向安全的CDN
CDN中增加的最后一层实用性是DDoS和僵尸程序防护。 像Incapsula这样的CDN专门从事此工作。
由于CDN是网站基础结构的最外层,并且是流量的第一个接收者,因此CDN可以及早发现DDoS攻击,并使用称为Scrubber的特殊DDoS保护服务器将其阻止,而未等它们到达原始服务器就可将其击溃。
此外,通过使用从众多客户那里获得的众包知识,CDN可以了解可疑IP,垃圾邮件发送者,破坏者甚至爬虫的类型及其行为。 例如,如果在站点A上识别到某个爬虫,在站点B受同一CDN保护的情况下,便也会停止该爬虫在站点B上工作,因为流量过滤器会识别出以前看到的模式。
而且,尽管CDN确实允许其客户上传自定义证书,但他们也提供自己的证书。 这有两个好处:
- 当证书中出现一个很大的漏洞时,CDN通常会快速做出响应,因为它们损失的最多(所有客户)。 因此,通常在大多数人甚至不知道安全漏洞之前就已经有修复程序。
- 连接速度更快,因为如果许多网站使用相同的CDN,那么您已经通过其SSL证书与CDN建立了有效的连接和相互信任,并且不必为每个使用该CDN的站点重复此过程。 证书。 这对单个网站的影响不如对整个网站的影响大。
最大的玩家
CDN领域中一些最大的参与者是Akamai,AWS Cloudfront,Cloudinary,Incapsula,MaxCDN,Fastly等公司。
除了列出完整的类别,我们将列出其中每个类别都可以成为冠军的类别:
爬虫和DDoS防护
尽管在其他方面也不错,但Incapsula在抓取和DDoS保护方面无与伦比。 凭借庞大的数据库,该数据库不仅包含有问题的代理IP地址,而且还包含机器人和爬虫的鼠标以及浏览模式,可以阻止大多数自动攻击消失在他们的轨道上。
速度与全球影响力
Akamai,甚至Facebook都使用的CDN,在全球可用性方面拥有良好的记录。 他们分散的网络拓扑模型以及在世界上最贫困地区(其他CDN缺乏的可用性)的可用性,使得即使在低连通性区域中,也可以使用Akamai平滑地加载内容。 紧随其后的是来自亚马逊的AWS Cloudfront。
选择与否:您的目标是从中国到美国,从芬兰到南极洲的全球性业务。
负担能力
Amazon Cloudfront是付费计划中最便宜的(我们不算免费计划,因为这些计划通常缺少重要功能),并且可以说是仅次于Akamai的最大覆盖范围,而且价格也不是那么便宜(分散的拓扑维护起来很昂贵)。
选择与否:价格是一个问题。
热链接
热链接是指当有人在您网站上托管的图像上选择“复制图像地址”,并直接将其直接包含在原始URL中的情况下。 这通常是内容窃贼的草和懒惰工作,但是如果模仿者成功地在影响力较大的社交媒体网站(例如Facebook或Reddit)上共享其网站,并且服务器遭受了麻烦,则可能会导致大笔开支。 MaxCDN和KeyCDN都提供了很好的热链接保护。
选择与否:您有一个画廊,旅行博客或任何其他图像丰富的网站,这些网站可能会发生热链接。
其他
我们鼓励您自己出去调查选择适合自己的。 有不计其数的职位将CDN相互比较,每个CDN的每个计划在提供的选项上都与下一个有所不同。 覆盖全面非常困难,而且具体方面在不断变化。
实现过程
实现CDN通常需要在注册商(您租用您的域名的公司)的控制面板中更改一些DNS记录。 这导致所有流量首先到达CDN,进而又到达您的网站。 由于这一切都是在后台进行(通过IP),因此该过程对用户是透明的。
有时,网站会在其主域中添加一个特殊的子域,以在其上托管图像,JavaScript,CSS和其他静态内容。 如果您在打开诸如Facebook之类的网站时打开浏览器开发控制台的“网络”选项卡,或者只是注意浏览器的状态栏,您会注意到其中包含cdn的许多URL –这就是该站点仅在请求 它的某些内容来自CDN。
为什么不通过CDN请求所有内容? 因为静态内容通常很大-2MB图像,500kb JS等,所以值得快速提供,这是原因a)它不会经常更改并且可以长时间缓存,这是原因b)消除了静态内容的巨大负担。 应用程序的主服务器,可以是动态的。
总结
在本文中,您了解了什么是CDN及其工作方式。 您了解了CDN的不同类型及其潜在的工作范围,以及该领域的最大参与者。
在两篇后续文章中,我们将介绍Cloudinary和Cloudflare,在我们的主要Performance-Month-Project中,我们实际上将其中之一实现到了我们的真实应用中,以便您可以在实际示例中看到它们。 敬请关注!