简单cdn

第七章 简单cdn
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

                                                            作者:田逸(sery@163.com)

7.1 cdn 概述

 

Cdn是Content Delivery Network首字母缩写,译成中文就是内容分发网络。使用cdn技术的主要目的在于增加访问速度、解决南北互联(中国适用)、提高用户体验等等。Cdn历史上最有名的事件:当属关于克林顿丑闻的斯塔尔报告被放在互联网,因下载该报告的人太多,最终导致服务器瘫痪。该事件直接促使cdn的诞生。

 

最早的商业cdn服务可能诞生于1999年,但本人闻之cdn这个业务则是2005年的事情了。到了2006年的春天,我有幸得到一个cdn设计方面的工作,这才有机会全面了解cdn原理、设计、部署以及运营等。

 

 

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> 7.1.1 为什么需要使用 cdn

 

1、  解决网站高流量、大并发的问题。我们知道,任何一个物理设备,其负载都有一个极限。为了应对访问量突增,使用cdn服务是一个好的系统扩容方案。

2、  解决南北互联问题。我国的网络是划江而治的格局,因为利益之争,各网络服务商之间并不是通力协作,而是采取各种手段相互限制。这就导致各网之间的互联互通存在很大的问题,具体表现为:电信的用户访问放置在网通机房的服务器,响应时间特别长,反之亦然。使用cdn技术,可以让电信的用户访问电信的内容缓存服务器,网通的用户访问网通的内容缓存服务器。通过这样一种策略,绕开了运行商之间人为设置的障碍。

3、  访问加速。Cdn采用缓存技术,把访问对象缓存起来,有的技术甚至能把对象缓存到内存(如varnish),这在效果上表现出来就是访问加速。

4、  降低总体运营成本。在一些互联互通比较好的第三方BGP机房,其带宽费高达300-400//月,而二、三线城市单线接入的带宽费100M一年的费用才5万左右。使用cdn运营方案,我们把源站放在BGP机房,而把缓存服务器放置在带宽费用较低的其它地方。因为cdn的大部分流量被转移到缓存服务器上,源站只有较小的访问请求,因此总体运营成本大幅降低。

5、  提高网站的可用性。源站的访问量变得很小,这意味着源站系统有更低的负载,更低的磁盘i/o,除故障的几率大大降低。对于缓存服务器,多个服务器做成集群,保证整个系统的高可用。

6、  ddos***。***负载被分配到不同的物理服务器,客观上起到防ddos的作用。

 

7.1.2 cdn 适用的场合

 

任何一门技术,都有一定的适用范围,cdn也不另外。实践证明,cdn对于静态对象的加速和发布具有很好的效果,但对于动态的网站,则效果不佳。为了使用cdn技术所带来的好处,我们可以通过动态内容静态化、静态内容分离(如动态站点里的图片)等方式,来加速访问和增强用户体验。

 

有哪些对象是静态可缓存的呢?这包括html页面文件、视频文件、js文件、css文件、exe文件、图片文件(jpeggifpng等)等。

 

7.1.3 cdn 的组成

 

Cdn是一种组合技术,它包括源站、缓存服务器、智能dns、客户端等几个部分。

 

源站指发布内容的原始站点。新增、删除和更改网站的文件,都是在源站上进行的;缓存服务器抓取的对象也全部来自于源站。

 

缓存服务器是直接提供给用户访问的站点资源,有一个或数个服务器组成;当一个用户发起访问时,他的访问请求被智能dns定位到离他较近的缓存服务器。如果访问所需的内容没有被缓存,则缓存服务器向邻近的缓存服务器或直接向源站抓取内容,然后再返还给用户;如果用户所请求的内容刚好在缓存里面,则直接把内容返还给用户。

 

智能dns是整个cdn的核心,它负责根据用户的来源,将其访问请求转向到离用户较近或较合适的缓存服务器如把长沙电信的用户请求转向到长沙电信机房的缓存服务器。实现智能dns的一种技术是:bind view,在bind 9以后的版本,都应该支持view 视图这个功能。另外还有一个次一点的方案,即dns轮询方式。

 

客户端即普通发起访问的用户,一般的访问方式是浏览器。这个不再做说明。

 

除了前面列举的组件外,还有一个可选项目,即用来进行内部域名以及源站的域名解析。因为是可选的,因此也可以通过使用本地hosts指定主机名来代替。不过有一点需要注意,内部域名系统不能使用合法注册的域名服务器,也即在互联网上,找不到这个域名系统的NS记录。为什么呢?请继续往下看。

 

接下来,我们以图示来总结一下cdn各组件间的关系。
 
 
 
 
 
7-1展示了两种比较典型的访问场景,这两种场景,基本上能反应这个cdn的工作全貌:

 

场景一:当“A网用户”访问被cdn加速的站点 http://www.formyz.cn时,从本地的dns查询域名,最终可能在全局智能dns服务器得到域名所对应的ip地址,即本图所示“A网的缓存服务器”的ip;接着“A网用户”浏览器向“A网的缓存服务器”发起访问请求,幸运的是所需的默认页面文件index.htm正好被缓存在“A网的缓存服务器”里,于是缓存服务器立即返还数据,完成一次访问请求。

 

场景二:当“B网用户”访问被cdn加速的站点 http://www.formyz.cn时,从本地的dns查询域名,最终可能在全局智能dns服务器得到域名所对应的ip地址,即本图所示“B网的缓存服务器”的ip;接着“B网用户”浏览器向“B网的缓存服务器”发起访问请求,但是缓存服务器并没有缓存默认页面文件index.html,它需要先从源站取得这个对象,缓存并把内容返还给“B网用户”。“B网缓存服务器”通过“内部dns”知道源站在哪里。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值