CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现
有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户
访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。
CDN技术采取了分布式网络缓存结构(即国际上流行的web cache技术),通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的cache服务器内,通过DNS负载均衡的技术,判断用户来源就近访问cache服务器取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度,如同提供了多个分布在
各地的
加速器,以达到快速、可冗余的为多个网站加速的目的。
由于CDN基本的加速手段是“DNS智能选择最近的镜像”+“镜像缓存静态内容”,所以在传统的观点中,CDN只是对静态页面加速,对动态页面没有效果。
对于动态网站的加速,网上大部分人都认为“不可能做到”,“加速效果不明显”,“它怎么能把数据库进行加速”。现在就我个人对CDN动态加速的了解,进行一一的说明。
(1)
首先对于,大家所致疑的“能不能实现动态数据的加速”这个问题,我的理解如下:首先明确的是,对于大家针对动态代码和数据库的安全性考虑,大多数据客户不会把动态代码和数据库的数据让CDN服务商发布到每个Cache结点上。这一点大家都是这么做。毕竟是一个不能公开的部分。
如我们在南方电信A点访问没有加速前的动态网站B(放置在北方网通机房),慢,打开一个网站需要尽1分钟以上,ping A,得到的平均时间为:600MS以上ms。而使用CDN动态加速后,我们在A到B之间,插入了一个CDN的cache(C点)。这样得到的结果是从A到C点的时间很快,大约10ms以内。现在我们看的就是从C点到B的时间。就CDN服务商的说法,一定是小于直接从A到B的时间减少A到C的时间,倒底是不是呢?现在我们分析CDN服务商的布置Cache节点的作用。它们在全国如果布有节点的话。并具有智能DNS系统的话。它们就会在CDN服务提供的cahce结点内部去
寻找一条最短的路径,使从C到B的时间缩短。这就是大家常说的最佳路由。有以上的两个假设,一般对于动态网站的加速就能够达到且速度比原来的时间到缩短50%以上。一般的像帝联,chinacahe都具有智能DNS系统与在全国的布了多的节点。
(2)对于像一些图片等静态数据,仍采用静态加速的办法。综合起来的,可以达到对动态网站的加速效果,这里有一点注意的是,动态网站一般不会对数据库本身进行加速。这一点大家需要
明白。
因此,动态CDN加速并不是一种虚妄的说法,其效果还是值得
肯定,目前市场上也确实有服务商提出这样的口号,
但是我们也要意识到,如果某个动态页面的大部分内容都是由脚本代码产生,那么这个页面使用CDN加速是没有多大效果的,毕竟这个页面的主要内容没办法被存入镜像;但是对于图片较多的动态页面,例如图片论坛,我想这种加速还是有意义的。