使用cdn会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入cdn的系统,通过cdn部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。由于cdn将内容推送到网络边缘,大量的用户访问被分散在网络边缘,不再构成网站出口、互联互通点的资源挤占,也不再需要跨越长距离ip路由了。
cdn是如何工作的呢?先看看没有cdn服务时,一个网站是如何向用户提供服务的。
今天我们看到的网站系统基本上都是基于b/s架构的。b/s架构,即browser-server(浏览器 服务器)架构,是对传统c/s架构的一种变化或者改进架构。在这种架构下,用户只需使用通用浏览器,主要业务逻辑在服务器端实现。b/s架构,主要是利用了不断成熟的www浏览器技术,结合浏览器的多种script语言(vbscript、javascript等)和activex等技术,在通用浏览器上实现了c/s架构下需要复杂的软件才能实现的强大功能。
①用户在自己的浏览器中输入要访问的网站域名。
②浏览器向本地dns服务器请求对该域名的解析。
③本地dns服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。
④本地dns服务器中如果没有关于这个域名的解析结果的缓存,则以递归或迭代方式向整个dns系统请求解析,获得应答后将结果反馈给浏览器。
⑤浏览器得到域名解析结果,就是该域名相应的服务设备的ip地址。
⑥浏览器向服务器请求内容。
⑦服务器将用户请求内容传送给浏览器。
在网站和用户之间加入cdn以后,用户不会有任何与原来不同的感觉。最简单的cdn网络有一个dns服务器和几台缓存服务器就可以运行了。一个典型的cdn用户访问调度流程如图1-3所示。

①当用户点击网站页面上的内容url,经过本地dns系统解析,dns系统会最终将域名的解析权交给cname指向的cdn专用dns服务器。
②cdn的dns服务器将cdn的全局负载均衡设备ip地址返回用户。
③用户向cdn的全局负载均衡设备发起内容url访问请求。
④cdn全局负载均衡设备根据用户ip地址,以及用户请求的内容url,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户ip地址,判断哪一台服务器距用户最近;根据用户所请求的url中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的ip地址。
⑥全局负载均衡设备把服务器的ip地址返回给用户。
⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
dns服务器根据用户ip地址,将域名解析成相应节点的缓存服务器ip地址,实现用户就近访问。使用cdn服务的网站,只需将其域名解析权交给cdn的gslb设备,将需要分发的内容注入cdn,就可以实现内容加速了。
原贴地址:http://book.51cto.com/art/201205/338756.htm