一、CDN的概念
全称是Content Delivery Network,即内容分发网络。
其基本思路是: 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
二、使用CDN的优势:
1、本地Cache加速,提高企业站点访问速度。(尤其是含有图片和大量静态页面的站点)
2、跨运营商的网络加速,保证不同网络的用户都能得到良好的访问质量。
3、远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器。
4、自动生成服务器的远程Mirror(镜像)Cache服务器,远程用户访问时从Cache服务器上读取数据,减少远程访问的带宽,分担网络流量,减轻原站点WEB服务器负载
5、广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效的预防黑客入侵。
三、CDN的工作原理
用户发起请求-->智能DNS的解析(根据IP判断地理位置,接入网类型,选择路由最短和负载最轻的服务器) -->返回缓存节点服务器IP -->把内容返回给用户(如果缓存中有) -->如果没有缓存-->向源站发起请求 -->将结果返回用户 -->将结果存入缓存服务器
原理图:
四、CDN的使用场景
1、站点或者应用中有大量的静态资源到的加速分发, 例如 css,js ,img,html
2、大文件下载
3、直播网站
五、CDN的实现
第一种 : BAT 等都有提供CDN服务
第二种 : 可以用LVS的4层负载均衡
第三种 : 可以用Nginx,Varnish,Squid,Apache TrafficServer 做7层负载均衡和 Cache
反向代理的实现:
可以使用squid 或者 Nginx 等的反向代理。
备注:
反向代理(Reverse Proxy) 的定义:
是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。