CDN 内容分发网络

CDN内容分发网络通过缓存技术、负载均衡和动态分发提高网站访问速度,减少服务器压力,增强网站稳定性和安全性。它自动将内容分发到全球的边缘服务器,依据用户位置、服务器负载等因素选择最佳节点。CDN与镜像站点区别在于自动分发和内容优化,而与加速器不同之处在于对动态内容和协议的处理。
摘要由CSDN通过智能技术生成

CDN

CDN(Content Delivery Network)就是内容分发网络,是构建在现有网络基础之上的智能虚拟网络。依靠部署在各个地方的边缘服务器,通过分布式存储、负载均衡、网络请求的重定向和内容管理等功能模块,以就近性和服务器负载的判断,确保内容以一种极为高效的方式为用户请求提供所需要的资源

  • CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果

在这里插入图片描述

CDN作用

  • 加速访问提高用户体验
    • CDN可以使用户就近获取所需资源,降低网络堵塞,提高用户访问响应速度和命中率
  • 有利搜索排名和转化
    • 使用CDN网站打开速度变快有利于搜索引擎排名
  • 减轻源站服务器压力
    • 解决了网站的并发量过大造成服务器过载问题,由此减轻了源服务器的访问压力,节省了骨干网络带宽,可以接收更多流量。
  • 解决宕机问题
    • 当某个CDN服务器发生意外挂了(过载,攻击等),不会影响全部,系统会调用临近的健康的CDN服务器节点继续服务,从而具有更高的稳定性
  • 保障网站安全
    • 能有效应对绝大部分网络攻击(DDOS等),网站被攻击也只会打到CDN节点为上,不会影响源站服务器;在内容安全上也可以解决盗版网站通过盗链之类的方法窃取内容
  • 节约成本
    • 使用CDN不用考虑购买服务器和后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而劳心劳力,降低了网站建设和维护成本,节省了人力、精力和财力

CDN缺点

  • 缓存
    • 由于CDN采用各节点缓存的机制,如网站的静态网页和图片修改后,CDN缓存没有及时做相应更新,则看到的还是旧的网页。即使用户在浏览器使用Ctrl+F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户访问看到的还是旧见网页
  • 动态内容优化有限
    • CDN 主要针对静态资源的优化,对动态内容和实时数据的优化有限

CDN相关技术

负载均衡技术

  • 负载均衡技术不仅仅应用于CDN中,在网络的很多领域都得到了广泛的应用,如服务器的负载均衡、网络流量的负载均衡。
  • 网络中的负载均衡就是将网络的流量尽可能均匀分配到几个能完成相同任务的服务器或网络节点上,由此来避免部分网络节点过载。这样既可以提高网络流量,又提高了网络的整体性能。
  • 在CDN中,负载均衡又分为服务器负载均衡和服务器整体负载均衡(也有的称为服务器全局负载均衡)。
    • 服务器负载均衡是指能够在性能不同的服务器之间进行任务分配,既能保证性能差的服务器不成为系统的瓶颈,又能保证性能高的服务器的资源得到充分利用。
    • 而服务器整体负载均衡允许Web网络托管商、门户站点和企业根据地理位置分配内容和服务。通过使用多站点内容和服务来提高容错性和可用性,防止因本地网或区域网络中断、断电或自然灾害而导致的故障。在CDN的方案中服务器整体负载均衡将发挥重要作用,其性能高低将直接影响整个CDN的性能。
  • 具体方式为
    • 往返时间(RTT):CDN 服务器可以基于往返时间(指从发送端到接收端的时间)选择距离用户最近的节点。较短的往返时间通常意味着较低的延迟,从而可以更快地处理用户请求。可以通过客户端 DNS 请求来获取往返时间。
    • 地理位置(GeoIP):通过识别用户的 IP 地址,然后将其与地理数据库进行比较,CDN 可以确定用户的位置,从而选择离用户最近的服务器节点。这种方法可以减少因地理距离造成的延迟。
    • 任播(Anycast):这是利用 BGP(边界网关协议)来自动引导流量到最近的服务器节点的一种网络寻址和路由方法。多个服务器节点具有相同的 IP 地址,但路由器会将用户请求转发到最近的节点。这简化了负载均衡过程,因为路由器自动处理流量分配。
    • 速度测试:CDN 服务器通过测量从各节点到用户的相关速度和响应时间来确定最快的节点。这可能涉及到网络速度、响应时间和连接的性能等指标。
    • 轮询和加权轮询:轮询算法实际上是将流量分发到多个服务器节点,遵循某种遍历顺序。在加权轮询中,则根据每个节点的权重来进行分发,权重较高的节点得到更多流量。
    • 服务器负载:CDN 服务器可以根据各个节点的负载、资源利用率或可用带宽等参数来进行负载均衡

动态分发与复制技术

  • 众所周知,网站访问响应速度取决于许多因素,如网络的带宽是否有瓶颈、传输途中的路由是否有阻塞和延迟、网站服务器的处理能力及访问距离等。多数情况下,网站响应速度和访问者与网站服务器之间的距离有密切的关系。如果访问者和网站之间的距离过远的话,它们之间的通信一样需要经过重重的路由转发和处理,网络延误不可避免。

  • 一个有效的方法就是利用内容分发与复制技术,将占网站主体的大部分静态网页、图像和流媒体数据分发复制到各地的加速节点上。所以动态内容分发与复制技术也是CDN所需的一个主要技术。

缓存技术

缓存技术已经不是一种新鲜技术。Web缓存服务通过几种方式来改善用户的响应时间,如代理缓存服务、透明代理缓存服务、使用重定向服务的透明代理缓存服务等。通过Web缓存服务,用户访问网页时可以将广域网的流量降至最低。对于公司内联网用户来说,这意味着将内容在本地缓存,而无须通过专用的广域网来检索网页。对于Internet用户来说,这意味着将内容存储在他们的ISP的缓存器中,而无须通过Internet来检索网页。这样无疑会提高用户的访问速度。CDN的核心作用正是提高网络的访问速度,所以,缓存技术将是CDN所采用的又一个主要技术。

  • 时间戳策略: 这种策略使用文件的时间戳或最后修改时间来检查其是否过期。当 CDN 请求源服务器上的内容时,源服务器会返回文件的最后修改时间。如果此时间大于 CDN 缓存的当前版本的时间,则 CDN 将获取新版本并更新缓存。
  • ETag(实体标签)策略: ETag 是一个由服务器生成的唯一标识符,用于识别资源的特定版本。CDN 在请求源服务器时发送当前缓存的 ETag。源服务器检查此 ETag 是否与最新资源的 ETag 匹配。如果不匹配,服务器返回新的资源和新的 ETag 给 CDN;如果匹配,则表示资源未发生变化,服务器返回一个 304 Not Modified 响应。
  • Time-To-Live(TTL)策略: TTL 是一个设定值,用于指定资源在 CDN 节点上缓存多长时间(以秒为单位)。当 TTL 到期时,CDN 将从源服务器获取资源的新副本。TTL 可以为不同的文件类型或路径设定不同的值,以根据实际需求进行优化。
  • Cache-Control HTTP 头策略: 源服务器可以使用 Cache-Control HTTP 头来指示 CDN 如何缓存内容。这些指令可以定义资源的最大生存时间(max-age)、强制 CDN 重新验证资源是否过期(must-revalidate 或 no-cache)以及是否允许 CDN 缓存私有内容(private 或 public)。
  • 具有预取功能的主动推送策略: 通过主动预取,CDN 可以在内容更新或新增之后立即从源服务器获取资源。这可以用于确保 CDN 缓存中始终有最新的内容。
  • 查询参数和 Cookie 策略: 您可以选择根据特定查询参数或 Cookie 缓存内容。例如,您可以配置 CDN 节点来忽略某些查询参数,这样对相同资源的不同查询参数请求将返回相同的缓存的内容。

工作原理

CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问时间。
首先,让我们看一下传统的未加缓存服务的访问过程:
在这里插入图片描述如图可以看出,传统的网络访问的流程如下:

  1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;
  2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);
  3. ROOT DNS将域名授权dns记录回应给 LocalDns;
  4. LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;
  5. 域名授权dns 查询域名记录后,回应给 LocalDns;
  6. LocalDns 将得到的域名ip地址,回应给用户端;
  7. 用户得到域名ip地址后,访问站点服务器;
  8. 站点服务器应答请求,将内容返回给客户端.

下面让我们看一下使用CDN缓存后的网站的访问过程:
在这里插入图片描述

  1. 用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址;
  2. LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期);
  3. ROOT DNS将域名授权dns记录回应给 LocalDns;
  4. LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址;
  5. DNS系统最终将域名的解析权交给CNAME指向的CDN专用DNS服务器,回应给 LocalDns;
  6. LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址;
  7. 智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns;
  8. LocalDns 将得到的域名ip地址,回应给用户端;
  9. 用户得到域名ip地址后,访问站点服务器
  10. 如果这台服务器上没有相关(没有缓存)的网站文件,就去CDN网络中的上层缓存服务器中拉取,如果上层还是没有就继续向上找,最后就会去源站上拉取网站文件,就是 回源
  11. 源服务器返回内容给缓存服务器(在每一层的CDN服务器上做个缓存 ),缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上

综上,CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据,从而降低网络的访问的速度。

CDN取消缓存

  • 使用动态页面,asp,php,jsp等动态技术做成的页面不被CDN缓存,无需每次都要刷新
  • 一个网站两个域名,一个启用CDN,另外一个域名不用CDN,对即时性要求高的页面和图片放在不用CDN的域名下

CDN和镜像站点区别

CDN 区别在于:

  • 自动分发:CDN 会自动分发内容到一个全球覆盖的服务器网络(也称为边缘服务器)。无论用户在何处访问网站,CDN 都可以将内容缓存在离用户最近的服务器节点上,从而缩短加载时间和减小延迟。

  • 智能路由和负载均衡:CDN 使用负载均衡算法和路由选择技术,比如往返时间(RTT)、地理位置(GeoIP)、任播(Anycast)等,以确定选择最优的节点为用户提供服务。

  • 动态内容处理:虽然 CDN 主要用于加速静态资源的加载,但它也能提供一定程度的动态内容和实时数据处理。

  • 内容优化:CDN 还可使用各种页面优化和性能增强技术,如文件压缩、HTTP/2、持久化连接等,以提高网站性能。

镜像站点的区别:

  • 手动配置:镜像站点通常需要手动配置和部署。网站管理员在不同的服务器上创建源站的完整副本,然后用户根据其位置或其他因素选择相应的镜像站点。

  • 全站复制:镜像站点是对源站内容的完全复制,包括整个网站结构和所有文件。

  • 来源选择:在访问镜像站点时,用户手动选择要访问的镜像站点,可能根据地理位置或其他条件进行推荐。

  • 备份功能:镜像站点可以作为原始服务器的备份,在原始服务器发生故障时确保内容可靠传输。

CDN和加速器的区别

  • 动态资源加速:加速器主要关注动态资源和实时数据的加速。通过对数据包的优化、压缩和使用持久连接等方法,加速器针对于动态内容的传输进行性能提升。
  • 协议优化:加速器还可以对传输协议进行优化,例如使用 HTTP/2 或 QUIC 等更高效的协议,以提高连接效率。
  • 端到端优化:加速器将整个传输链路进行优化,从源站到用户浏览器或客户端应用的整个过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值