CDN 是什么?
CDN——Content Delivery Network,内容散发网络,具体来说,CDN就是采纳更多的缓存服务器(CDN边缘节点),布放在用户拜访绝对集中的地区或网络中。当用户拜访网站时,利用全局负载技术,将用户的拜访指向间隔最近的缓存服务器上,由缓存服务器响应用户申请。(有点像电商的本地仓吧?)
为什么要应用 CDN ?
一、减速了内容的拜访——用户与内容之间的物理间隔缩短,用户的等待时间也得以缩短
二、从 webpack 抽离一些微小的且版本更新不频繁的库,如 Vue Elementui,以缩小 build 时的打包体积, 改为在 index.html 中应用 <script> 援用
三、有些大型网站,拜访用户太多,而服务器有并发限度,不得不散发一些流量到其余的服务器,另外有看到,能够把整个网站都做cdn减速,也就是把html也做cdn缓存,弊病太大,不太了解为什么要这么做
哪些文件能够应用 CDN ?
个别的动态文件,.js .css,视频,apk
图片,我司用oss存储,不晓得oss算不算 cdn
有些网站,html 也应用 cdn
怎么应用 CDN ?
如果是减速一般的 .js .css文件,那么间接找个cdn服务商就行了,例如 jsDelivr,bootcdn,对于减速网站,也就是给html做cdn,那么就须要去购买www.showapi.com域名的中央,去他们的后盾管理系统里批改cname,以便达到用户拜访 www.showapi.com,会转发到www.xxxcdn.com,
为什么是购买域名的中央?
筹备:实际上,咱们的网址应该为test.baidu.com . ,留神看前面有个 点 ,只不过浏览器为了不便用户都给省略了。
比方解析test.baidu.com. ,是具体怎么解析成IP地址的呢?能够形容为,从右向左
. -> .com -> baidu.com. -> test.baidu.com
浏览器解析dns是逐层的,
其次:
查看浏览器缓存,(chrome://net-internals/#dns)
查看操作系统dns缓存 windows零碎中,命令行 ipconfig/displaydns 查看,linux上的NSCD缓存服务;
从计算机hosts文件中查找
查看路由器缓存
如果前几步都没没找到,会向ISP(网络服务提供商)的LDNS服务器查问,ISP也就是域名提供商,咱们在这里设置cname映射即可,
如果LDNS服务器没找到,会向根域名服务器(Root Server)申请解,流程分为以下几步:
先找根域名服务商所在的ip,即最初面那个.
根服务器返回顶级域名(TLD)服务器如.com,.cn,.org等的地址,寰球只有13台,该例子中会返回.com的地址
接着向TLD发送申请,而后会返回次级域名(SLD)服务器的地址,
接着向SLD域名服务器通过域名查问指标IP,
Local DNS Server会缓存后果,并返回给用户,缓存在零碎中。
那么,设置了cdn当前的流程,
就是把www.showapi.com重定向到www.xxxcdn.com,持续走一遍下面的流程,最初会走到xxx.cdn的dns服务商上,并且返回一个通过负载平衡零碎计算过的存有资源的ip地址给浏览器,浏览器会把这个ip放到浏览器dns缓存,下次间接应用
对于什么是cname,这是dns外面的一个知识点,文末有扩大浏览的链接,这里简略解释一下,就是说,咱们拜访一个域名时,实际上是拜访一个ip地址的,那么域名和ip是不是一对一呢?不是的,是一对多,一个域名能够对应多个ip,一个域名与一个ip这样的映射关系,成为A记录,会有多个A记录,cname优先级比a记录更高,所以能够做到重定向,ns记录是下一级别的dns服务器的信息,比方.com的dns服务器会返回show.com的dns服务商地址,这些地址就存在ns里