CDN
为什么需要CDN
物理因素的限制
美国到中国的网络延迟大约为200ms,而中国到中国的网络延迟大约为20ms,这是由于光速的限制,即使是光纤也无法解决这个问题。
宽带成本的限制
假如流量1元1G,发一个10G电影需要十块钱,并且我给10个人发同样的电影需要100元。
服务器成本的限制
一台服务器假设能抗100G流量,而双十一的时候,我需要抗1000G流量,这时候我需要10台服务器,而且这10台服务器不是一年到头都在用,只有双十一的时候才会用到,这样就造成了资源的浪费。
CDN的益处
降低网络延迟
CDN的作用就是让用户访问最近的服务器,这样就能降低网络延迟。
降低部署成本
只需要部署少量的服务器,就能抗住大量的流量。
CDN的原理
一般来说,一个IP只能够对应一台服务器,如何实现用户访问最近的服务器呢?🕵️ - DNS劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商的域名解析服务会根据用户的IP地址,解析到最近的服务器
- 用户直接访问最近的CDN服务器
一些问题
- 地理距离可能更近,但是需要多次路由器节点转发
- 如果用户指定某个DNS,如Google的8.8.8.8
CDN策略
拉策略 (轻量资源)
当用户访问一个资源的时候,CDN会先去源站拉取资源,然后再返回给用户。此时,如果CDN没有对应资源,就会返回404;一段时间后,CDN会丢弃资源。
推策略 (经常访问的资源)
服务端主动告知CDN存储某些资源,丢弃某些资源。