CDN的加速缓存原理与回源机制解析

 更新时间:2023年09月09日 15:58:42   投稿:yin  
CDN 是一个分布式的内容分发网络,当用户请求一个网络资源时,用户请求的是 CDN 提供的资源,和域名系统类似,当用户请求一个资源时,首先会接触到一个类似域名系统中目录的服务,这个服务会告诉用户究竟去哪个 IP 获取这个资源,

CDN 是一个分布式的内容分发网络。当用户请求一个网络资源时,用户请求的是 CDN 提供的资源。和域名系统类似,当用户请求一个资源时,首先会接触到一个类似域名系统中目录的服务,这个服务会告诉用户究竟去哪个 IP 获取这个资源。事实上,很多大型的应用,会把 DNS 解析作为一种负载均衡的手段。当用户请求一个网址的时候,会从该网站提供的智能 DNS 中获取网站的 IP。

CDN 是什么?

CDN加速的原理基于两个关键概念:缓存和就近访问。

1. 缓存:CDN节点会将网站的静态资源(如图片、CSS、JavaScript等)复制到各个服务器上,并将其存储在高速缓存中。当用户发起请求时,CDN会先检查是否有缓存的副本。如果有,CDN会直接将资源返回给用户,而无需向原始服务器发出请求。

2. 就近访问:CDN网络由分布在全球各地的节点组成。当用户发起请求时,CDN会根据用户的地理位置,将请求路由到距离用户最近的节点。这样做可以减少数据传输的距离和网络延迟,提高网站的加载速度。

CDN缓存

当用户请求一个静态资源的时候,首先会触发域名系统的解析。域名系统会将解析的责任交由 CDN 提供商来处理,CDN 的智能 DNS 服务会帮助用户选择离自己距离最近的节点,返回这个节点的 A(或 AAAA)记录。然后客户端会向 CDN 的资源节点发起请求,最终获得资源。

在上面整个过程当中,CDN 的智能 DNS 还充当了负载均衡的作用。如果一个节点压力过大,则可以将流量导向其他的节点。

CDN往往被用来存放静态资源。所谓静态资源就像JS CSS 图片等不需要业务服务器进行计算得到的资源。而动态资源, 顾名思义就是i需要后端实时动态生成的资源, 较为常见的就是JSP ASP 或者依赖服务端渲染得到的HTML页面。

CDN 回源

CDN 回源就是 CDN 节点到源站请求资源,重新设置缓存在 CDN 的设计当中,CDN 实际上提供的是数据的缓存。而原始数据,则由服务的提供者提供。

用户的请求先到达缓存层,如果缓存被穿透,才到达最终的存储层。缓存的设计必须是分布式的,因为绝大多数的资源使用都会发生在缓存上,只有极少数的请求才会穿透到底层的存储。通常这种设计,我们期望缓存层至少需要帮挡住 99% 的流量。既然缓存层能挡住 99% 的流量,那么实际的数据存储就可以交由源站点完成。

源站内容有更新的时候,源站主动把内容推送到CDN节点。常规的CDN都是回源的。即:当有用户访问某一个URL的时候,如果被解析到的那个CDN节点没有缓存响应的内容,或者是缓存已经到期,就会回源站去获取。如果没有人访问,那么CDN节点不会主动去源站拿的。

回源域名一般是cdn领域的专业术语,通常情况下,是直接用ip进行回源的,但是如果客户源站有多个ip,并且ip地址会经常变化,对于cdn厂商来说,为了避免经常更改配置(回源ip),会采用回源域名方式进行回源,这样即使源站的ip变化了,也不影响原有的配置。

CDN 回源有 3 种情况,一种是 CDN 节点没有对应资源时主动到源站获取资源;另一种是缓存失效后,CDN 节点到源站获取资源;还有一种情况是在 CDN 管理后台或者使用开放接口主动刷新触发回源。

总结

CDN适用于静态技术,比如图片,游戏下载,视频等。缺点:CDN用到的是缓存技术,加速的是网站的静态、公用部分。如果是动态网站,不能缓存,每次都要回源服务器访问,用了CDN反而增加了一个环节,不好。

到此这篇关于CDN的加速缓存原理与回源机制解析的文章就介绍到这了,更多相关CDN的加速缓存与回源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 服务器端如何使用CORS来允许设置Cookie

    服务器端如何使用CORS来允许设置Cookie

    这篇文章主要为大家介绍了服务器端如何使用CORS来允许设置Cookie的方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • DNSlog外带原理及注入分析(最新推荐)

    DNSlog外带原理及注入分析(最新推荐)

    DNS的全称是Domain Name System(网络名称系统),它作为将域名和IP地址相互映射,使人更方便地访问互联网,最近一直听到DNSlog外带原理等词但对其原理一直只是自己的理解(回显DNS请求后的日志)并没有真正的了解过,所以这里做一下记录,感兴趣的朋友一起看看吧
    2024-01-01
  • 服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?

    服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?

    很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器,下面就跟随小编一起来了解一下
    2019-05-05
  • rashost的windows VPS重装系统的方法

    rashost的windows VPS重装系统的方法

    看rashost官方,rebuid系统有linux的说明,居然没windows的说明,只好试试了
    2011-10-10
  • 阿里云mysql空间清理的方法

    阿里云mysql空间清理的方法

    今天小编就为大家分享一篇关于阿里云mysql空间清理的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • selenium+chromedriver在服务器运行的详细教程

    selenium+chromedriver在服务器运行的详细教程

    这篇文章主要介绍了selenium+chromedriver在服务器运行的详细方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 护卫神 主机管理系统使用说明篇 系统设置

    护卫神 主机管理系统使用说明篇 系统设置

    护卫神·主机管理系统支持在Windows Server 2003/2008/2012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手,但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档
    2015-01-01
  • Web服务器和应用服务器之间的区别详解

    Web服务器和应用服务器之间的区别详解

    这篇文章主要介绍了Web服务器和应用服务器之间的区别详解,应用服务器是为客户端提供对业务逻辑的访问这种服务器,根据客户端的请求会将数据转化为动态内容,一般还需要数据库的支持,应用服务器的搭建很多时候依赖于应用程序的开发语言,需要的朋友可以参考下
    2023-07-07
  • Redis和Memcache对比与如何选择

    Redis和Memcache对比与如何选择

    我这段时间在用redis,感觉挺方便的,但比较疑惑在选择内存数据库的时候到底什么时候选择redis,什么时候选择memcache,然后就查到下面对应的资料,是来自redis作者的说法(stackoverflow上面)
    2020-07-07
  • Spark入门简介

    Spark入门简介

    这篇文章主要介绍了Spark的相关内容,算是对spark的初步涉猎,希望大家通过这篇文章能对spark有一定的了解,需要的朋友可以参考下。
    2017-09-09

最新评论