1.CDN是个啥玩意?
Content Delivery Network,即内容分发网络
各地部署多套静态存储服务,本质上是空间换时间
自动选择最近的节点内容,不存在再请求原始服务器
适合存储更新很少的静态内容,文件更新慢
举个栗子:
你,要喝水,每次都要去水房里接水喝,你觉得很麻烦,所以你就选择了水壶去装水,这样就不用每一次都要去水房接水,就可以选择最近的水壶进行接水。
要如何做呢?
尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络
CDN系统能够实时的根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上
2.优势?
本地Cache加速,提高了企业站点(尤其h含有大量图片和静态页面站点)的访问速度
跨运营商的网络加速,保证不同网络的用户都得到良好的访问质量
远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器
自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点web服务器负载等功能
广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵。
3.工作原理?
传统访问:用户在浏览器输入域名发送请求->解析域名获取服务器IP地址->根据IP地址找到对应的服务器->服务器响应并返回数据
使用CDN访问:用户发送请求->智能DNS的解析(根据IP判断地理位置、接入网类型、选择路由最短和负载最轻的服务器)->取得缓存服务器IP->把内容返回给用户(如果缓存中有)->向源站发起请求->将结果返回给用户->将结果存入缓存服务器
4.适用场景
站点或者应用中大量静态资源的加速分发,例如:CSS,JS,图片和HTML
大文件下载
直播网站等
5.CDN的实现
BAT、阿里云、腾讯云等都有提供CDN服务
可用LVS做4层负载均衡
可用Nginx,Varnish,Squid,Apache TrafficServer做7层负载均衡和cache
适用squid反向代理,或者Nginx等的反向代理