什么是CDN
原视频 bilibili up主 蛋老师
距离是硬伤
假设你需要去买过,去的路程需要1小时,回来需要1小时。那么往返时间就是2小时(RTT),而且还可能买到不熟的西瓜。
而用户访问服务器也是如此,服务器的地址距离自己距离很远,当打开一个网站几秒钟还是没有内容显示,那么用户很可能就会关闭网站了。
如何解决
解决办法:可以在世界上各个位置都开上分店。也就是有人在世界上各个地方搭建服务器为你服务,因此就形成了一个网路,叫做CDN(内容分发网络),边缘服务器就是接近用户的这些服务器。
CDN分发内容的流程
CDN服务器肯定是没有网站的源内容的,因此源服务器就需要提前备份内容给CDN服务器,这样当世界各地的用户要访问网站的时候,就近的CDN就可以返回内容给用户啦,当用户请求的资源CDN上面没有的话,那么就需要向源服务器请求资源了。
存在问题
但是这样请求的资源都是静态的,服务器不可能一直都可以原内容备份给CDN。比如要从CDN上获取时间,每次都要问服务器时间,然后再返回给用户,这样CDN不是会适得其反吗?其实CDN服务器也提供了接口允许服务器上面的代码,这样就不需要每次请求资源都需要向源服务器问啦
安全性和可靠性
假设有人攻击CDN服务器使得CDN服务器过载了,那么用户的请求就会转移到没有超载的服务器那边,这样也叫负载均衡。那么问题来了:CDN是如何转移这些流量呢?答案是任播,CDN对外会有一个一样的ip地址,请求会由距离用户最近的那个CDN返回给用户