CDN到底是什么,很多人不明白为何我如此推崇CDN。下面简单介绍以下CDN。

CDN简单来说,就是一批服务器,分布在不同的机房组成节点,然后由DNS均衡和CDN系统进行控制。

CDN的工作原理:用户上传静态文件(css,js,图片等,CDN无法运行脚本,执行运算,所以只能用于静态文件),CDN系统将,上传的文件分发到CDN每个节点的服务器,是的没有错,就是复制到全国上前节点的服务器中,每个服务器的内容是相同的。用户通过域名进行访问文件,访问域名的时候,DNS服务器首先判断请求用户地址,然后选择离用户较近的机房进行相应,机房负载判断哪一台服务器负载低,就由哪一台服务器进行相应,返回对应文件。所以两个不同的地区的人访问同一个URL地址,完全可能是由两个机房提供服务。就是这么神奇。

CDN可以加速资源加载速度:

说个实际例子:打开淘宝随便点开一张图右键,属性查看地址,会发现都是 img.alicdn.com 开头的地址,这个域名,就是淘宝专门用来放产品图片的CDN服务器域名。我们在两个城市Ping这个网址。

UNIGUI与CDN(一)CDN简介

UNIGUI与CDN(一)CDN简介
UNIGUI与CDN(一)CDN简介

可以看到DNS解析出来的是两个IP地址,虽然是两个IP地址,但是在两个地方打开的却是同一张图片。也就是先就近,再就轻,使文件下载的速度加快。

CDN是共享经济的产物,创建CDN服务是一个成本非常高的事情,要在各个机房投服务器,要上DNS负载均衡等等,单一个投服务器的成本就不是一般人受到了的。

因为是共享经济,资源访问的时候,由空闲服务器提供服务,所以几乎每个请求都可以达到很快的速度。现在带宽这么贵,大家都把空闲的带宽利用起来,就可以互相加速,榨干运营商。

大厂投放CDN服务,往往又面临另一个问题,服务器投产后,并非所有服务器都处于满负荷运行,就造成了很大的资源浪费,资源浪费,就是浪费钱!!!所以就把空闲资源出租,一方面可以方便其他有需求的用户使用,一方面还可以节省自身的成本,一举多得。

CDN可以有效减少服务器带宽:

上面提到了CDN是单独的域名,所以静态资源文件,与主服务不是由同一台服务器提供服务,也就是说以前都在主服务器加载所有内容,现在只加载index,其他的css,js,图片都是由其他服务器提供。自然就节省了服务器的带宽开销。

CDN可以有效利用缓存:

接触过web开发的人应该知道很多服务商提供免费cdn资源公共库,比如bootcdnstaticfilesae等等非常多,他们把一部分闲置资源共享出来让大家免费使用,有些人可能会觉得这非常浪费钱。其实不然。

大家都用的时候,实际上是非常节省资源,因为浏览器有缓存功能,比如,网站A,网站B,同时使用了bootcdn的静态资源服务,比如网站A,网站B都引用了

https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js

当用户访问网站A的时候,会加载这个js,但是当用户再访问网站B的时候,实际并不是在服务器加载该文件,而是直接使用浏览器缓存的js。所以实际上他们的资源开发远远远远小于实际用户数。这也是共享的概念。

除此之外,CDN的优点还有很多,期待你们自己发掘。

参考文档:https://baike.baidu.com/item/CDNhttps://www.jianshu.com/p/342902022a4d

下篇文章会对使用CDN前后的速度进行对比


谁还不是宝宝了