一、名词解释

Origin Server源站:做 CDN 之前的客户真正的服务器。
User:访问者,也就是要拜访网站的网民。
Last Mile:最初一公里,也就是网民到他所拜访到的 CDN 服务器之间的门路。
CNAME记录:它是一个别名记录( Canonical Name );当 DNS 零碎在查问 CNAME 右面的名称的时候,都会转向 CNAME 右面的名称再进行查问,始终追踪 到最初的 PTR 或 A 名称,胜利查问后才会做出回应,否则失败。
CNAME域名:CDN的域名减速须要用到CNAME记录,在阿里云控制台配置实现CDN减速后,您会失去一个减速后的域名,称之为CNAME域名(该域名肯定是.kunlun.com), 用户须要将本人的域名作CNAME指向这个.kunlun.com的域名后,域名解析的工作就正式转向阿里云,该域名所有的申请都将转向阿里云CDN的节点。
DNS:DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络能够辨认的ip地址。人们习惯记忆域名,但机器间相互只认IP地址,它们之间的转换工作称为域名解析,域名解析须要由专门的域名解析服务器来实现,整个过程是主动进行的。比方:上网时输出的www.baidu.com会主动转换成为220.181.112.143
边缘节点:也称CDN节点、Cache节点等;是绝对于网络的简单构造而提出的一个概念,指间隔最终用户接入具备较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连贯速度。其作用是将访问量较大的网页内容和对象保留在服务器前端的专用cache设施上,以此来进步网站拜访的速度和品质。
Cache:cache高速缓冲存储器一种非凡的存储器子系统,其中复制了频繁应用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁拜访的RAM地位的内容及这些数据项的存储地址。当处理器援用存储器中的某地址时,高速缓冲存储器便查看是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保留该地址,则进行惯例的存储器拜访。因为高速缓冲存储器总是比主RAM存储器速度快,所以当RAM的访问速度低于微处理器的速度时,常应用高速缓冲存储器。
全站减速:给整个网站设置cdn减速,

二、什么是CDN 以及用法?

CDN的全称是Content Delivery Network,即内容散发网络。

次要提供两样货色,

为用户动态分配最近节点,便于缩短用户拜访资源的工夫及其他需要,以便减速一些动静资源的拜访,比方游戏减速,视频直播分流,文件下载等。
基于第一点,还为动态资源提供缓存服务,减速用户的下次访问速度
用法有两种,

资源由其余网站提供(称为源站),比方某些开源cdn,间接批改代码里的资源链接,<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.0.2/vue.cjs.js"></script>,
资源由本人的服务器提供,这种状况下接入CDN,其原理就是在某个DNS解析阶段, 把用户对我的网站的拜访申请,转发到CDN的服务器上, 须要理解一些DNS解析方面的常识。超清晰的 DNS 原理入门指南
三、为什么须要CDN?

举个简略的例子,假如咱们疏忽网络传输的损耗、设施延时,网络传输速度靠近光速,是30万公里每秒,从东京到美国硅谷的间隔大略为1万公里,也就是说,如果你的服务器在东京,你上传了一张很小的图片,美国用户拜访至多须要60毫秒。而且,这只是实践数据,事实世界中,网络环境是十分复杂的,跨地区、跨运营商、网络拥塞、抖动等问题,都会千里之行;始于足下,使得延时成倍增加,还有可能拜访失败,最终影响拜访体验。

CDN的呈现,正是为了解决这个问题。咱们将这张图片散发并缓存在美国的CDN节点之上,美国用户就无需从东京获取数据,间接从就近的美国本地CDN节点获取到图片,这大大节俭了传输工夫,晋升拜访效率。CDN的节点通常会遍布寰球,源站的文件会被被缓存到世界各地,这样寰球用户都能够实现快速访问。

它有点像散布于各地的仓储物流点,很多品牌会事后在仓储物流点储备一些爆款商品(动态文件应用CDN进行缓存),当用户从电商平台下单购买货物的时候(用户发动申请),平台依据用户的播种地址就近匹配到最近的仓储物流点并间接进行派货(就近散发),让用户以最快的速度拿到快递包裹(散发的内容)。咱们能够用理论的生存教训来做个比照,如果从江浙沪包邮区寄给杭州的用户,个别第二天就能到,如果是从北京、深圳发货,个别须要2-3天!

四、什么是DNS?

DNS (Domain Name System 的缩写)的作用非常简单,就是依据域名查出IP地址。你能够把它设想成一本微小的电话本。

举例来说,如果你要拜访域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。

在dns中的一些术语,

A:地址记录(Address),返回域名指向的IP地址,为了安全可靠,会有多个A记录,也就是一个域名,对应多个A记录
MX:邮件记录(Mail eXchange),返回接管电子邮件的服务器地址。
NS:域名服务器记录(Name Server),返回保留下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
CNAME:标准名称记录(Canonical Name),返回另一个域名,即以后查问的域名是另一个域名的跳转,
因为CNAME记录就是一个替换,所以域名一旦设置CNAME记录当前,就不能再设置其余记录了(比方A记录和MX记录),这是为了避免产生抵触。举例来说,foo.com指向bar.com,而两个域名各有本人的MX记录,如果两者不统一,就会产生问题。因为顶级域名通常要设置MX记录,所以个别不容许用户对顶级域名设置CNAME记录。
五、个别的DNS解析流程?

实际上,一个残缺的网址前面有个点, 如test.baidu.com. ,只不过浏览器为了不便用户都给省略了。 比方解析test.baidu.com. ,是具体怎么解析成IP地址的呢? 能够形容为,从右向左 . -> .com -> baidu.com. -> test.baidu.com

流程:

先找本地 DNS“,也叫 Local DNS,简称 LDNS。
个别是指你电脑上网时IPv4或者IPv6设置中填写的那个DNS。这个有可能是手工指定的或者是DHCP主动调配的。
如果你的电脑是直连运营商网络,个别默认设置状况下DNS为DHCP调配到的运营商的服务器地址。如果你的电脑和运营商之间还加了无线或者有线路由,那极有可能路由器自身还内置了一个DNS转发器,这玩意的作用是将发往他所有的DNS申请转发到下层DNS。此时因为路由器自身也接管了下挂电脑的DHCP服务,所以它调配给上面电脑的DNS地址就是它本身,所以你能看到电脑的DNS调配到的可能是192.168.1.1。实际上就是路由器本身,而路由器的DNS转发器将申请转发到下层ISP的DNS。所以这里说DNS是局域网或者是运营商的都能够
如果LDNS没有缓存记录,它将会一步步向前面的服务器做申请,而后将所有数据进行汇总后交给最终的客户,这个环节术语叫”递归“。
递归过程中,有个名词叫权威服务器, 是非凡的DNS服务器,所谓的权威是针对特定域名来说的。所以个别会说某某域名的权威DNS是谁,不能单纯的抛离域名问权威DNS是谁。是域名商在治理,负责解析在他这里购买的域名的权威解析, 一般而言, 就是指购买域名的中央,比方新网,万网(被阿里收买) 就是在这里能够配置你的域名,是指向一个ip(A记录),还是指向cdn地址(CNAME)
六、接入CDN之后的DNS流程?

依照下面的DNS流程,解析CNAME(cdn.com)域名时,会返回NS记录,去到CDN服务商的DNS解析服务器,即匹配到这个cdn.com后缀的域名都会到CDN服务提供商的DNS服务器做解析, 而后,通过cdn外部的负载平衡零碎计算,返回一个有资源的缓存服务器的ip地址给浏览器,浏览器向该地址申请资源, 如果有资源就返回给浏览器,并把该资源做缓存,如果没有,就向上一级缓存服务器申请(即缓存命中率)

参考文献:

超清晰的 DNS 原理入门指南!边学边用
简略的解释下什么是CNAME?
对于CDN的原理、术语和利用场景那些事
OSS对象存储的寰球减速计划