从:
CDN原理
CDN 网络在用户和服务器之间增加了一个缓存层。如何将用户请求定向到 Cache 以从源服务器获取数据,主要是通过接管 DNS 来实现。这是CDN最基本的原理。如下所示:
图中各点的含义如下:
1、用户在浏览器中输入域名,浏览器首先发现本地没有DNS缓存,请求网站的DNS服务器;
2、网站的DNS域名解析器设置了CNAME,请求指向CDN网络中的智能DNS负载均衡系统;
3、智能DNS负载均衡系统解析域名,将用户响应最快的IP节点返回给用户;
4、用户向IP节点(CDN服务器)发送请求;
5、由于是第一次访问,CDN服务器会请求原网站并缓存内容;
6. 请求结果发送给用户。
当然很多细节都没有涉及,比如第1步,先请求本地DNS服务器。第五步,内容剔除机制(根据TTL)等。但原理大体相同。
当用户访问加入CDN服务的网站时,域名解析请求最终会交给全球负载均衡DNS处理。全局负载均衡DNS通过一套预定义的策略,为用户提供当时离用户最近的节点地址,让用户得到快速的服务。同时,它还与分布在全球的所有 CDN 节点保持通信,收集每个节点的通信状态,并确保用户请求不会分发到不可用的 CDN 节点。实际上,全局负载均衡是通过 DNS 完成的。
对于普通用户来说,每个 CDN 节点就相当于一个放置在其周围的 WEB。通过全局负载均衡DNS的控制,将用户的请求透明地定向到最近的节点,节点内的CDN服务器会像网站的原始服务器一样响应用户的请求。由于离用户更近,响应时间必然更快。
CDN 节点
每个 CDN 节点由两部分组成:负载均衡设备和缓存服务器。
负载均衡设备负责各个节点中各个缓存的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点及周边环境的信息,维护与全局负载DNS的通信,实现整个系统的负载均衡。CDN管理系统是整个系统正常运行的保障。不仅可以实时监控系统中的各个子系统和设备,对各种故障产生相应的告警,还可以实时监控系统总流量和各个节点的流量,并保存在系统中数据库,以便网络管理员可以方便地进行进一步的分析。
CDN网络
理论上,最简单的 CDN 网络可以运行一个负责全局负载均衡的 DNS 和每个节点的缓存。DNS支持根据用户的源IP地址解析不同的IP,实现就近访问。为了保证高可用等,需要监控各个节点的流量和健康状态。当一个节点上的Cache数量不足时,需要多个Cache,而当多个Cache同时工作时,需要一个负载均衡器使Cache组协同工作。
CDN关键技术:
1.缓存算法【Squid】;
2、配送能力;
3.负载均衡【Nginx】
4.基于DNS[BIND];
5. 支持协议;
缓存算法决定命中率、源服务器压力、POP节点存储容量。
分销能力取决于IDC能力和IDC战略分销。
负载平衡(智能调度)确定最佳路由、响应时间、可用性和服务质量。
基于 DNS 的负载均衡使用 CNAME[to] 实现,智取最优节点服务cdn加速的原理,
缓存点包括客户端浏览器缓存和本地 DNS 服务器缓存。
缓存内容包括DNS地址缓存、客户端请求内容缓存和动态内容缓存。
支持静态和动态加速(图片加速、带证书加速的https)、下载加速、流媒体加速、企业应用加速、移动应用加速等协议。
CDN提供了一种机制,当用户请求内容时,内容可以通过Cache以最快的交付速度提供给用户。这种选择“最优”的过程称为负载平衡。
从功能上看,一个典型的CDN系统由分发服务系统、负载均衡系统和运营管理系统组成。
配送服务体系:
最基本的工作单元是缓存设备。缓存(edge cache)负责直接响应终端用户的访问请求,快速将本地缓存的内容提供给用户。同时,缓存还负责将内容与源站同步,从源站获取更新的内容和本地不可用的内容并保存在本地。Cache设备的数量、规模和总服务能力是衡量CDN系统服务能力的最基本指标。
负载均衡系统:
主要功能是调度所有发起服务请求的用户的访问,并确定最终提供给用户的实际访问地址。二级调度系统分为全局负载均衡(GSLB)和局部负载均衡(SLB)。GSLB主要是根据用户就近的原则,通过对各个服务节点进行“最优”判断,来确定为用户提供服务的缓存的物理位置。SLB主要负责节点内部的设备负载均衡
运营管理系统:
分为运营管理子系统和网络管理子系统,负责处理业务层面与外部系统交互所需的收、整理、派送工作,包括客户管理、产品管理、计费管理、统计分析等功能。
负责向用户提供内容服务的缓存设备应该部署在网络的物理边缘,即CDN边缘层。CDN系统中负责全局管控的设备构成了中心层(二级缓存)。中央层还保存了最多的内容副本。当边缘层设备丢失时,它会请求中心层。如果命中,中心层需要回源站(如果是流媒体,成本非常高)。
CDN骨干点和CDN POP点功能不同。中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中的服务点;边缘节点也称为POP(point of)节点,CDN POP 主要用作直接向用户提供服务的节点。
应用协议加速:
企业应用加速主要是动态加速和SSL加速。
广域网应用加速:
SSL应用加速:由于需要进行大量的加解密操作,SSL应用在服务器端的资源消耗非常巨大。CDN提供SSL应用加速后,加解密操作由CDN专用的SSL加速硬件完成。
网页压缩:HTTP1.1 提出了对网页压缩的支持。在服务器端,可以先将网页数据进行压缩,然后将压缩后的文件提供给访问用户,最后解压并显示在用户的浏览器端(不过添加和解压的时间是衡量的)。