CDN (Content Distribute Network) 内容分发网络,或者叫(Content Delivery Network)内容交付网络。它的存在主要是为了让用户更快的获取内容。

    使用CDN 能极大地简化网站的系统维护工作量,网站维护人员只需要将网站的内容注入CDN 的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。

    在没有CDN 时,在浏览器中输入网址后的一个流程是:(图片来自《CDN技术详解》)

    CDN 基本工作过程 - 图1

    1.用户在自己的浏览器中输入要访问的网站域名。 2.浏览器向本地DNS服务器请求对该域名的解析。 3.本地DNS服务器中如果缓存有这个域名的解析结果,则直接响应用户的解析请求。 4.本地DNS服务器中如果没有缓存这个域名的解析结果,则会以递归的方式向整个DNS系统请求解析,获取解析结果后将其返回给浏览器。 5.浏览器得到域名解析的结果,就是域名所在的ip地址。 6.浏览器向服务器地址请求内容。 7.服务器将用户请求内容返回给浏览器。

    在网站和用户之间引入CDN后,对用户而言,和未引入之前不会有不同的感觉。一个简单的CDN 网络,只需要一个DNS 服务器和几台缓存服务器就可以运行了。流程如下:(图片来自《CDN技术详解》)

    CDN 基本工作过程 - 图2

    1.当用户输入网址回车后,经过本地DNS系统解析,DNS会将最终的域名解析权交给CNAME 指向的CDN 专用DNS服务器。 2.CDN的DNS服务器将 CDN的全局负载均衡 设备ip 地址返回给浏览器 3.用户向 CDN的全局负载均衡服务器 发起内容url 请求 4.CDN全局负载均衡服务器根据 用户请求的IP地址,url等信息,选择一台用户所属区域的负载均衡设备,告诉用户向这台设备发起请求。 5.CDN区域负载均衡服务器会为用户 选择一台合适的缓存服务器提供服务,选择的依据主要是:离用户距离要近,缓存服务器上是否用户所需内容,以及各个缓存当前的一个负载均衡情况。选择出一个最优的 缓存服务器ip地址。 6.全局负载均衡服务器将 缓存服务器的ip地址给到用户。 7.用户向缓存服务器发起请求。缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果缓存服务器上没有用户想要的内容,那么这台服务器就会向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器,并将内容拉取到本地。

    DNS服务器根据用户的ip地址,将域名解析成相应节点的缓存服务器ip地址,实现用户就近访问。使用CDN服务的网站,只要将其域名解析交给CDN 的GSLB设备,将需要分发的内容注入CDN,就可以实现内容加速了。

    参考: 《CDN技术详解》 CDN 的作用于基本过程 CDN的基本工作过程