什么是 CDN、它们如何工作以及为什么要使用 CDN?!
已发表: 2016-03-22想象一下这样一个世界:每个网页都会立即加载,没有一毫秒的等待时间。 尽管这还不可能,但不断出现的技术正在帮助我们离这个目标更近了几步。
内容交付网络(或简称CDN )是实现这一目标的步骤之一。
在本文中,我将解释什么是 CDN、CDN 模型与传统网络托管模型的比较,讨论为您的网站使用 CDN 的优缺点,最后向您展示如何开始您的网站与CDN。
什么是 CDN?
CDN 是一个网络服务器系统,分布在世界各地,每个服务器都托管您网站的副本,以改进向用户交付内容的方式。
CDN 的主要目的是什么?
CDN 的主要目的是更有效(即更快)地向最终用户提供网站内容。
如果您使用 CDN,当用户加载您网站的内容时,距离用户最近的 CDN 服务器将提供该内容。
由于内容的传输距离较短,因此可以更快地到达用户手中,这意味着您的网站加载时间更快!
但正如我们将看到的,这并不是使用 CDN 的唯一优势!
CDN 如何运作?
正如我们已经讨论过的,当您使用 CDN 作为网络托管设置的一部分时,网络中的每台服务器都会托管您网站的副本。
这些 CDN 服务器被称为“边缘”服务器,因为它们位于网络边缘并且距离用户最近。
这与“原始”服务器形成鲜明对比,“原始”服务器由您的网络托管公司提供,是您创建和更新网站时自动上传和存储文件的地方。
您可能想知道您的网站如何从源服务器到达这些边缘服务器?
嗯,这取决于你的CDN 是推式还是拉式……
什么是 Pull CDN(以及它是如何工作的)?
拉取 CDN 设置的工作原理是在需要时从源服务器拉取文件。
用户第一次请求文件时,边缘服务器将需要从您的源服务器(即您当前的托管提供商)读取文件。
然后,边缘服务器将存储该文件的缓存版本。 “缓存”版本仅意味着该特定时刻的文件副本。
未来对该文件的请求将直接来自边缘服务器(而不是从源服务器拉取),直到文件过期(变得过时)。
过期后,文件将需要再次从源服务器刷新并缓存。
什么是 Push CDN(以及它如何工作)?
推送 CDN允许用户将文件上传(“推送”)到 CDN本身,文件上传后立即分发到边缘服务器。
因此,您的文件已经存储在每个边缘服务器上,无需从源服务器中提取。
这是一个不太常见的选项; 然而,它对于分发大型媒体文件是有利的,因为媒体的副本将始终存储在边缘服务器上。
CDN 会取代您的网络托管吗?
不, CDN 不会取代您的网络托管。 他们协同工作。
您的原始文件全部存储在您的网络托管服务商的服务器上。 这是原始服务器。
CDN 服务器仅包含源服务器上文件的副本。
如果您摆脱网络托管,CDN 将无处可复制文件!
CDN 的视频摘要
如果您仍然有点困惑,这里有一个快速视频,用非常简单的术语解释了 CDN:
没有 CDN 的虚拟主机的问题
使用传统的网络托管模型,您网站的所有文件(HTML、CSS、图像等)都托管在世界上的一个位置- 基本上是您的网络托管提供商的数据中心所在的位置。
当最终用户访问您的网站时,始终从这一位置检索网站内容。
这样做有几个缺点:
1. 速度随着距离的增加而降低
如果您的网络托管提供商的数据中心位于德克萨斯州,则每次用户想要加载您的网站时,内容都会从该德克萨斯州的数据中心传送。
用户距离服务器的地理位置越远,传输速度往往会降低,因为文件需要传输更远的距离。 用户距离数据中心越远,网站加载所需的时间就越长。
因此,英国的网站用户加载您的网站的速度会比美国的用户慢,因为他们靠近德克萨斯州数据中心。
2. 传输速率有限
考虑多个用户同时尝试加载您的网站的情况。
正如您的个人计算机对通过网络传输文件的速度(吞吐量)有限制一样,服务器对文件传输的速度也有限制。
您当前的网络托管是否已做好应对如此流量激增的准备?
特别考虑未指定传输速率的共享托管解决方案。 在这些和其他环境中,传输速率可能非常有限,当您的网站流量激增时,这可能会导致明显的性能影响。
由于这些原因,流量激增可能会增加网站的加载时间,因为网站的内容会立即发送给所有最终用户。
使用 CDN 的优点
通过CDN模型,我们可以克服传统网络托管模型的缺点。 事实上,CDN 有几个优点,例如:
1. 更快的加载时间(通过从最近的服务器向用户提供内容)
请记住,用户距离托管提供商的数据中心越远,加载网站所需的时间就越长,因为文件需要传输更远的距离。
CDN 将根据每个最终用户位于世界上的位置,从距离每个最终用户最近或最有效的边缘服务器提供内容。
例如,如果中国的某人要加载您的网站,CDN 可能会自动从中国的服务器加载您网站内容的副本。 如果有人从英国访问您的网站,则可能会使用英国的服务器将您的网站加载到该特定用户。
CDN 将自动确定哪个服务器对于每个最终用户来说是最有效的选择。
2.更好的流量高峰处理(通过分散传输文件)
如前所述,服务器对一次可以传输的数据量有限制。 当多个用户尝试同时访问网站时,CDN 有助于提高网站的性能。
鉴于 CDN 工作原理的性质,对您网站的同时请求可能会由世界各地多个区域的多个服务器处理,具体取决于请求的来源。
这样,一台特定的服务器就不会被来自用户的所有请求淹没。 CDN 提供商还将实施其他程序,以确保您的文件即使在流量激增的情况下也能高效加载。
3. 更好的安全性(通过 DDoS 缓解和保护)
DDoS 攻击是指您的服务器充斥着对您网站的非法请求,其目的是使您的网站崩溃或因传输过多而导致带宽费用增加。
您的 CDN 提供商可能会提供 DDoS 检测和缓解机制,这将有助于提高网站在 DDoS 攻击中的性能和正常运行时间。
使用 CDN 的缺点
然而,使用 CDN 也有一些缺点。
1. 成本:CDN 通常是按使用付费的
CDN 提供商通常根据您传输的内容量收费。 因此,您每月的费用因月份而异。
您当前的网络托管提供商可能已经包含一定金额的每月转账作为您当前的托管套餐的一部分; 因此,您需要考虑 CDN 的额外成本是否适合您企业的在线业务。
请注意,“推送 CDN”提供商通常还会对存储空间收费(见下文)。
为了帮助您了解迁移到云的成本,请考虑以下场景……
假设您的网站大小为 1MB,CDN 提供商收取0.085 美元/GB的传输费用。 10,000 个用户访问整个网站的成本为:((1/1024)×10,000) ÷ 0.085 = 114 美分,即每 10,000 个请求 1.14 美元。
正如您所看到的,这并不是一个离谱的成本。
但是,许多 CDN 产品会从您当前的托管提供商的存储位置读取您的文件,这是额外的费用。 该源服务器可以是文件存储系统(例如 Amazon S3),也可以是您当前的托管提供商。
如果您的网站包含动态内容,您仍然需要维护可以处理这些类型文件的托管解决方案。
由于 CDN 解决方案通常是按使用付费的,因此 DDoS 攻击可能会给您带来经济上的不利——此类攻击导致的文件传输量急剧增加将导致您的企业成本增加。
然而,如前所述,CDN 提供商正在努力检测和减轻这些类型的攻击。
注意:许多最好的网络托管提供商现在在他们的计划中包含免费的 CDN 服务。
2. 缓存变化的内容需要额外的配置
请记住,CDN 的工作原理是在世界各地缓存您网站内容的副本。
但是,大多数网站包含一些内容,这些内容会根据访问网站的特定用户或其他条件(特定用户的欢迎消息、购物车等)而变化。
这种类型的内容在全球范围内缓存并不是那么简单,因为它会根据请求不断更新。
流文件是另一种在 CDN 中使用时需要特别注意的内容形式。 请参阅下文了解更多详细信息。
其他 CDN 注意事项
更新文件时刷新文件缓存
当您需要使用拉取 CDN 更新其中一个文件时,世界各地的所有缓存副本也都需要过期,以便在下一次请求时刷新它们。
为了实现这一点,您可能需要等待默认到期时间(因提供商而异),或强制缓存文件立即失效(通过手动清除缓存)。
尽管更新文件可能涉及此额外步骤,但您网站的静态文件可能不会经常更新。
确保不经常访问的文件有足够的过期时间
拉式 CDN 解决方案不一定始终在每个边缘服务器上包含文件的副本(下面将更详细地讨论)。 如果还没有文件的缓存版本,则必须从源服务器中提取该文件。
对于视频等较大文件来说,这更是一个问题,因为从源服务器加载这些类型的文件对性能的影响可能会非常明显。
此问题的一些解决方案是增加缓存文件的过期时间(如果可能),以便文件不需要频繁地从源服务器刷新,或者将大文件存储在推送 CDN 解决方案上(见下文) )。
静态内容与动态内容
网站包含两种主要类型的数据——静态内容和动态内容。
您在网站上看到的大部分内容(即外观、图像、视频、CSS 和 JavaScript 文件等)通常是静态内容。 静态内容永远不会改变(除非您重新上传源文件)。
例如,无论谁访问您的网站或您重新加载页面多少次,您公司的徽标的外观都不会改变。
动态内容根据请求数据的人或其他标准而变化。
例如,当约翰登录他的银行帐户时,他会看到他的余额。 然而,当大卫登录时,余额与乔看到的不一样。
另一个例子:登录 WordPress 仪表板后,您将看到一条消息,例如“Howdy,John!”。
根据用户或其他标准而变化的内容被视为动态内容。
CDN 如何处理静态、动态和流媒体内容?
此时,我们遇到一个重要问题:“我可以在 CDN 上存储什么样的文件?”。
由于无论谁加载您的网站,静态文件往往始终保持不变,因此它们非常适合通过 CDN 在世界各地进行缓存,因为这些文件很少更新。
就动态内容(即购物车)而言,通常没有一个文件可以在世界范围内缓存,因为它经常根据每个用户或其他条件而变化。
然而,CDN 提供商正在实施解决方案来提高加载动态内容的效率,例如找到用户和托管服务器之间的最快路径。
许多 CDN 提供商还实施了通过 CDN 流式传输直播和点播媒体的解决方案。
如何设置 CDN
所以现在,您可能会想,“我确信我的网站需要 CDN! 我如何过渡?”。
答案取决于您使用的托管提供商以及您想要哪种类型的 CDN 解决方案。
一些网络托管提供商提供了一个选项,可以通过其控制面板轻松启用 CDN。 其他设置需要一些额外的步骤。
为您的整个网站添加 CDN 层
对于小企业主来说,此选项是最简单的设置之一。 用户访问您网站内容的每个请求都将首先通过 CDN 提供商管理的系统进行过滤。
静态内容将从 CDN 加载,而动态内容将直接从现有服务器加载(或者可以使用一种技术来缩短动态内容的加载时间,如前所述)。
拉取 CDN 实际上会在幕后实现,以便通过 CDN 分发文件。
CloudFlare 就是提供此类 CDN 解决方案的公司之一。 CloudFlare 等一些公司还将提供除 CDN 之外的其他网站性能增强功能。
如何设置
设置此类 CDN 系统的主要步骤是更新网站的 DNS 记录以指向 CDN 层。 然后,CDN 层将根据需要将请求路由到您的源服务器。
您仍然需要保留当前的托管解决方案,以便 CDN 从中提取文件。
如何设置拉取 CDN
您指定要在 CDN 上分发的源服务器上的文件的位置。 然后,CDN 会根据需要从源服务器拉取文件。
您还需要将网站中文件的链接更新到 CDN 端点,或更新 DNS 设置以指向 CDN。
如何设置推送 CDN
将您的文件上传到 CDN 提供商。 您还需要将网站中文件的链接更新到 CDN 端点,或更新 DNS 设置以指向 CDN。
我应该离开我的网络托管提供商吗?
不。即使购买了 CDN 解决方案,您也需要继续使用网络托管提供商。
请记住,CDN 用于缓存内容; 如果您的网站包含任何动态内容,您仍然需要保留当前的托管解决方案才能处理该内容。
哪些托管公司提供 CDN?
如今,许多托管公司都提供 CDN 作为其共享托管计划的一部分:
- SiteGround(使用他们自己定制的 SiteGround CDN)
- Bluehost(Cloudflare 已预先启用)
- Kinsta(免费包含付费 Cloudflare 计划)
- WP Engine(免费包含付费 Cloudflare 计划)
- HostGator(Cloudflare 仅包含在商业计划中)
- IONOS(Cloudflare 仅包含在专家计划中)
- Cloudways(每月仅需 4.99 美元即可添加 Cloudflare Enterprise)
结论
CDN 是一种可行的解决方案,可通过减少向用户传输文件所需的时间来提高网站的效率。 这可能会增加您网站上的客户保留率,甚至可能提高您的搜索结果排名。
CDN 还将减少当前托管设置上的文件请求负载,这可能有助于处理大流量。
然而,CDN 的成本通常会增加。 您的网站值得 CDN 提供的性能改进,但好处必须超过潜在的成本和其他权衡。
不要忘记 CDN 只是提高网站性能的众多步骤之一。 选择一个快速的网络主机是首要的(也是最重要的)。
您还可以采取许多其他措施来普遍提高网站的速度(例如图像压缩),特别是改善 WordPress 网站的加载时间!
您的网站使用过 CDN 吗? 请在下面的评论中告诉我们您对 CDN 的看法!