内容交付网络(CDN)是一个全球分布的网络服务器或存在点(PoP),其目的是提供更快的内容交付,内容被复制并存储在整个CDN中,因此用户可以访问存储在地理上离用户最近的位置的数据。这与仅在一个中央服务器上存储内容的传统方法不同,客户端访问客户端附近的数据副本,而不是所有客户端访问同一个中央服务器,以避免该服务器附近的瓶颈。
内容分发网络的用途是什么?
CDN旨在优化网络内容的交付,它们为公司及其用户提供的一些主要优势包括:
更快的加载时间:CDN缓存的内容在地理位置上靠近其用户,从而减少了请求和响应所需的传输距离。因此,用户体验到更快的网页加载时间,这可以增加转换并降低跳出率。
降低带宽成本:从源服务器提供所有请求的内容需要在源服务器提供大量带宽和处理能力。CDN通过缓存静态内容和执行其他优化来降低带宽上的负载和带宽要求,这有助于大大降低成本。
改进的可用性和冗余性:对集中式基础架构的依赖(例如从源服务器提供所有内容)会增加由于硬件故障、网络中断和其他事件而导致停机的风险,CDN将内容和请求分布在多个位置,从而减少局部中断的影响。
增强的网站安全性:除了优化对网络内容的访问外,CDN还可以包含安全功能。通过阻止分布式拒绝服务(DDoS)攻击、增强数字证书安全和其他安全控制,CDN可以降低网络攻击的概率和影响。
CDN体系结构和关键组件
以下是内容交付网络的一个简单模型,其关键组件及其角色解释如下:
内容提供商:交付内容的实体
授权:内容提供商授予CDN提供商交付内容的权限
报告:内容提供商要求CDN提供商进行性能分析,以评估CDN提供商的服务质量并访问其他相关数据
来源:内容提供商发送内容的副本
内容:创建和/或许可分发的数字信息
请求:用户向内容提供商请求查看或本地存储数据(内容)
交付:CDN将内容交付给用户
用户:向内容提供商请求数据(内容)的实体
大多数CDN架构都是使用以下关键组件设计的:
交付节点:主要目的是将内容交付给最终用户,传递节点是包含运行一个或多个内容传递应用程序的缓存的服务器。它们通常位于尽可能靠近最终用户的位置。内容可以手动存储到这些节点(推送CDN),或者传递节点可以根据缓存过期规则(拉式CDN)从源节点请求内容。推送CDN的优点是,内容可以立即提供给需要的用户。它的主要缺点是,内容提供商每次更新内容时都必须主动“推送”内容。拉式CDN的优点是自动向内容提供商索取内容。它的主要缺点是最初的内容交付速度:当用户第一次需要内容时,交付速度将与内容提供商没有使用CDN时相同。然而,在这个初始请求之后,位于同一地理位置或与提出请求的原始用户接近的所有其他用户将能够立即访问内容,因为内容将被缓存在交付节点内。
存储节点:主要目的是存储分发到交付节点的原始数据的副本。存储节点可以部署在分层模型中,以允许分层缓存。
原始节点:这些是内容的主要来源,可以在整个网络或内容所有者的基础设施中进行内容分发。
控制节点:主要目的是托管CDN的管理、路由和监控组件。
内容的主要类型
动态内容:由web服务器使用几种常见的web编程语言(如php、ruby或java)动态生成的内容
静态内容:通常不会经常更改并且不需要生成的内容。图像、CSS和JavaScript等。
流媒体内容:通过网络浏览器控件播放的视频或音频文件。