web网站加速之CDN(Content Delivery Network)技术原理
来源:互联网 发布:ubuntu 16.04中文乱码 编辑:程序博客网 时间:2024/06/05 15:43
在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的信息,彻底解决网络拥塞,提高响应速度,是目前大型网站使用的流行的应用方案. 我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别: 由上图可见,用户访问未使用CDN缓存网站的过程为: CDN网络是在用户和服务器之间增加Cache层,主要是通过接管DNS实现,将用户的请求引导到Cache上获得源服务器的数据 通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为: 通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明的加速服务. 由于用户访问网站的第一步就是 域名解析 ,所以通过修改dns来引导用户访问是最简单有效的方式. 对于普通的Internet用户,每个CDN节点就相当于一个放置在它周围的网站服务器. 从上面图中 虚线圈起来的那块,就是CDN层,这层是位于 用户端 和 站点服务器之间. 在用户请求解析域名的时候,智能DNS判断用户的LocalDns的IP,然后跟DNS服务器内部的IP表范围匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址 在这里我们将使用 BIND 的View功能来实现运营商的区分,假设我们在每个运营商的机房都放有一个CDN节点,列表如下: 以上只列出了 www.cdntest.com 的A记录地址,其他关于zone的语法 请参考互联网. 在建立CDN网路时,最关键的就是 智能调度DNS,这个是CND网络总协调,通过高效的调度算法,可以使用户得到最佳的访问体验.1. CDN 概述
如果多台Cache加速服务器且分布在不同地域,需要通过有效地机制管理Cache网络,引导用户就近访问(比如通过DNS引导用户),全局负载均衡流量,这是CDN内容传输网络的基本思想.2. CDN 的工作原理
2.1. 传统访问过程(未加速缓存服务)
2.2. CDN访问过程(使用缓存服务)
下面让我们看看访问使用CDN缓存后的网站的过程:2.3. CDN网络的组成要素
通过对dns的接管,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求.
由于它离用户更近,因而响应时间必然更快.
它通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户可以得到快速的服务.
同时它需要与分布在各地的CDN节点保持通信,跟踪各节点的健康状态,容量等,确保将用户的请求分配到就近可用的节点上.3. CDN 智能调度Dns 实例分析
#dig img.alibaba.com ; 部分省略 ;; QUESTION SECTION: ;img.alibaba.com.INA ;; ANSWER SECTION: img.alibaba.com.600INCNAMEimg.alibaba.com.edgesuite.net. img.alibaba.com.edgesuite.net. 7191 INCNAMEimg.alibaba.com.georedirector.akadns.net. img.alibaba.com.georedirector.akadns.net. 3592 IN CNAMEa1366.g.akamai.net. a1366.g.akamai.net.12INA204.203.18.145 a1366.g.akamai.net.12INA204.203.18.160 ; 部分省略
从上面查询结果可以看出 img.alibaba.com. CNAMEimg.alibaba.com.edgesuite.net. 后面的CNAME是由 Akamai(CDN服务商) 去跳转到 智能调度器上的. #dig www.discovery.com ; 部分省略 ;; QUESTION SECTION: ;www.discovery.com.INA ;; ANSWER SECTION: www.discovery.com.1077INCNAMEwww.discovery.com.edgesuite.net. www.discovery.com.edgesuite.net. 21477 IN CNAMEa212.g.akamai.net. a212.g.akamai.net.20INA204.203.18.154 a212.g.akamai.net.20INA204.203.18.147 ; 部分省略
从上面查询结果可以看出 www.discovery.com. IN CNAMEwww.discovery.com.edgesuite.net. 后面的CNAME是由 Akamai(CDN服务商) 去跳转到 智能调度器上的.
缓存服务和调度功能都是由服务商来完成.4. CDN的 智能调度Dns 简化实现
4.1. 调度策略说明
这里使用的是静态拓扑的方法,只是判断LocalDns的IP.要想使用更复杂的调度算法可以考虑商业产品,如F5的3DNS.4.2. 假设CDN节点规划
域名 运营商(view) 服务地址 www.cdntest.com网通(CNC)192.168.0.1www.cdntest.com电信(TELECOM)192.168.0.2www.cdntest.com教育网(EDU)192.168.0.3www.cdntest.com默认(ANY)192.168.0.44.3. bind view 配置
acl "cnc_iprange"{ //定义ip范围(网通) 192.168.1.0/24; 192.168.2.0/24; //此处只是示例,其他省略 }; acl "tel_iprange"{ //定义ip范围(电信) 192.168.3.0/24; 192.168.4.0/24; //其他省略 }; acl "edu_iprange"{ //定义ip范围(教育网) 192.168.5.0/24; 192.168.6.0/24; //其他省略 }; acl "default_iprange"{ //定义ip范围(默认) 192.168.7.0/24; 192.168.8.0/24; //其他省略 }; view "CNC" { Match-clients{cnc_iprange}; zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "cdntest.com" IN { type master; file "cnc_cdntest.zone"; }; }; view "TEL" { Match-clients{tel_iprange}; zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "cdntest.com" IN { type master; file "tel_cdntest.zone"; }; }; view "EDU" { Match-clients{edu_iprange}; zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "cdntest.com" IN { type master; file "edu_cdntest.zone"; }; }; view "DEFAULT" { Match-clients{default_iprange}; zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "cdntest.com" IN { type master; file "default_cdntest.zone"; }; };
域名 zone配置文件 A记录地址 www.cdntest.comcnc_cdntest.zone192.168.0.1www.cdntest.comtel_cdntest.zone192.168.0.2www.cdntest.comedu_cdntest.zone192.168.0.3www.cdntest.comdefault_cdntest.zone192.168.0.4
这里使用的是静态拓扑(根据ip范围)的方法,也称为地域化方法,只是判断LocalDns的IP.5. 总结(Summary)
其次就是 CND节点的管理,比如涉及到 内容的同步机制,配置文件的更新等等,都需要有一套机制来保证.
当然在大型网站中,也要考建设CDN体系的成本和回报率.
- web网站加速之CDN(Content Delivery Network)技术原理
- web网站加速之CDN(Content Delivery Network)技术原理
- web网站加速之CDN(Content Delivery Network)技术原理
- CDN(content delivery network)技术原理
- web网站加速之CDN技术原理
- CDN(Content Delivery Network)原理和介绍
- CDN-Content Delivery Network.
- CDN-Content Delivery Network
- CDN(Content Delivery Network)
- CDN-Content Delivery Network
- 什么是CDN,content delivery network
- Big Data and CDN: Content Delivery Network
- CDN Content Delivery Network内容分发网络
- \t\t国内大型门户网站架构分析-大型门户网站的cdn部署(服务器负载均衡) Content Delivery Network
- CDN Content Delivery Network,即内容分发网络
- CDN(Content Delivery Network 内容分发网络服务 )服务简介
- Content Delivery Network
- content delivery network
- poj 3255 Roadblocks
- flex4 xml结合命名空间的使用
- poj 1942 Paths on a Grid
- WaitForSingleObject
- flex 匿名函数的使用
- web网站加速之CDN(Content Delivery Network)技术原理
- 超酷的图像效果 GDI+
- 《书摘》之MFC 应用程序获取设备环境的方法
- GUI 鼠标点击图像响应事件
- 乔布斯让苹果受世人尊敬的11个独到之处
- 关于QTMovieView的问题
- 详细解读ARM寄存器之CPSR
- 金山卫士界面源码解读及界面库分离(1)
- 恢复qq好友