起源:https://www.jianshu.com/p/1da...

一、什么是 CDN

CDN的全称是(Content Delivery Network),即内容散发网络。其目标是通过在现有的Internet中减少一层新的CACHE(缓存)层,将网站的内容公布到最靠近用户的网络”边缘“的节点,使用户能够就近获得所需的内容,进步用户拜访网站的响应速度。从技术上全面解决因为网络带宽小、用户访问量大、网点散布不均等起因,进步用户拜访网站的响应速度。

简略的说,CDN的工作原理就是将您源站的资源缓存到位于寰球各地的CDN节点上,用户申请资源时,就近返回节点上缓存的资源,而不须要每个用户的申请都回您的源站获取,防止网络拥塞、缓解源站压力,保障用户拜访资源的速度和体验

CDN对网络的优化作用次要体现在如下几个方面

  • 解决服务器端的“第一公里”问题
  • 缓解甚至打消了不同运营商之间互联的瓶颈造成的影响
  • 加重了各省的进口带宽压力
  • 缓解了骨干网的压力
  • 优化了网上热点内容的散布

二、CDN工作原理

传统拜访过程

传统拜访过程

「由上图可见,用户拜访未应用CDN缓存网站的过程为:」

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拜访过程

「通过上图,咱们能够理解到,应用了CDN缓存后的网站的拜访过程变为:」

1.用户输出拜访的域名,操作系统向 LocalDns 查问域名的ip地址.

2.LocalDns向 ROOT DNS 查问域名的受权服务器(这里假如LocalDns缓存过期)

3.ROOT DNS将域名受权dns记录回应给 LocalDns

4.LocalDns失去域名的受权dns记录后,持续向域名受权dns查问域名的ip地址

5.域名受权dns 查问域名记录后(个别是CNAME),回应给 LocalDns

6.LocalDns 失去域名记录后,向智能调度DNS查问域名的ip地址

7.智能调度DNS 依据肯定的算法和策略(比方动态拓扑,容量等),将最适宜的CDN节点ip地址回应给 LocalDns

8.LocalDns 将失去的域名ip地址,回应给 用户端

9.用户失去域名ip地址后,拜访站点服务器

10.CDN节点服务器应答申请,将内容返回给客户端.(缓存服务器一方面在本地进行保留,以备当前应用,二方面把获取的数据返回给客户端,实现数据服务过程)

通过以上的剖析咱们能够失去,为了实现对普通用户通明(应用缓存后用户客户端无需进行任何设置)拜访,须要应用DNS(域名解析)来疏导用户来拜访Cache服务器,以实现通明的减速服务. 因为用户拜访网站的第一步就是域名解析,所以通过批改dns来疏导用户拜访是最简略无效的形式.

CDN网络的组成因素

对于一般的Internet用户,每个CDN节点就相当于一个搁置在它四周的网站服务器. 通过对dns的接管,用户的申请被通明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的申请. 因为它离用户更近,因此响应工夫必然更快.

从下面图中 虚线圈起来的那块,就是CDN层,这层是位于 用户端 和 站点服务器 之间.

  • 智能调度DNS(比方f5的3DNS)

    智能调度DNS是CDN服务中的要害零碎.当用户拜访退出CDN服务的网站时,域名解析申请将最终由 “智能调度DNS”负责解决。它通过一组事后定义好的策略,将过后最靠近用户的节点地址提供给用户,使用户能够失去疾速的服务。同时它须要与散布在各地的CDN节点放弃通信,跟踪各节点的衰弱状态、容量等信息,确保将用户的申请调配到就近可用的节点上.

  • 缓存性能服务

    负载平衡设施(如lvs,F5的BIG/IP)

    内容Cache服务器(如squid)

    共享存储

三、名词解释

CNAME记录(CNAME record)

CNAME即别名( Canonical Name );能够用来把一个域名解析到另一个域名,当 DNS 零碎在查问 CNAME 右面的名称的时候,都会转向 CNAME 右面的名称再进行查问,始终追踪到最初的 PTR 或 A 名称,胜利查问后才会做出回应,否则失败。

例如,你有一台服务器上寄存了很多材料,你应用docs.example.com去拜访这些资源,但又心愿通过documents.example.com也能拜访到这些资源,那么你就能够在您的DNS解析服务商增加一条CNAME记录,将documents.example.com指向docs.example.com,增加该条CNAME记录后,所有拜访documents.example.com的申请都会被转到docs.example.com,取得雷同的内容。

CNAME域名

接入CDN时,在CDN提供商控制台增加完减速域名后,您会失去一个CDN给您调配的CNAME域名, 您须要在您的DNS解析服务商增加CNAME记录,将本人的减速域名指向这个CNAME域名,这样该域名所有的申请才会都将转向CDN的节点,达到减速成果。

DNS

DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络能够辨认的ip地址。人们习惯记忆域名,但机器间相互只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析须要由专门的域名解析服务器来实现,整个过程是主动进行的。比方:上网时输出的www.baidu.com会主动转换成为220.181.112.143

常见的DNS解析服务商有:阿里云解析,万网解析,DNSPod,新网解析,Route53(AWS),Dyn,Cloudflare等。

回源host

回源host:回源host决定回源申请拜访到源站上的具体某个站点。

例子1:源站是域名源站为www.a.com,回源host为www.b.com,那么理论回源是申请到www.a.com解析到的IP,对应的主机上的站点www.b.com

例子2:源站是IP源站为1.1.1.1, 回源host为www.b.com,那么理论回源的是1.1.1.1对应的主机上的站点www.b.com

协定回源

指回源时应用的协定和客户端拜访资源时的协定保持一致,即如果客户端应用 HTTPS 形式申请资源,当CDN节点上未缓存该资源时,节点会应用雷同的 HTTPS 形式回源获取资源;同理如果客户端应用 HTTP 协定的申请,CDN节点回源时也应用HTTP协定。

近期热文举荐:

1.1,000+ 道 Java面试题及答案整顿(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!

5.《Java开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!