CDN(Content Delivery Network,内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,经过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,下降网络拥塞,提升用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。浏览器
国内的 CDN 通常选用七牛、蓝汛等老牌厂商,阿里云的管理界面更加人性化,我的角度来讲仍是选用阿里的 CDN 方便。缓存
阿里云把互联网技术都模块化,以服务的形式提供给消费者,这也是云计算带来的便捷,不须要像过去同样人工部署安装维护,产品化模块化的服务。服务器
在阿里云 CDN 控制界面开通服务,添加一个加速域名(加速域名不能与源站域名相同,否则没法生效)网络
添加完成后,会生成一个 CNAME,在万网或者 dnspod(根据域名选用的解析公司)添加解析便可。负载均衡
具体可参考阿里云 CDN 帮助文档模块化
测试 CDN 是否加速,理论上须要从全国各地不一样的地方去 ping 加速的域名,看响应的节点是否都是就近的,仍是所有都是源站。测试
在网上 ping 检测下测试:http://ping.chinaz.com阿里云
CDN 强大功能的命门之一,每一个节点都从源站请求资源,而后缓存起来,这样客户端在请求资源的时候,访问加速域名,经过 CNAME 解析,DNS 服务器会智能的返回一个离客户端最近的 CDN 站点(在 DNS 解析中一个域名配置两个 A 记录的IP,也是经过 DNS 智能解析来返回最近的 IP),这样响应报文就会从 CDN 节点中发出:云计算
了解 HTTP 的都知道,HTTP 客户端(通常指浏览器)在请求一个资源的时候,会先检查本地是否有缓存,若是有的话,客户端在发送请求报文的时候,会带上首部:If-Modified-Since:"Mon, 12 Sep 2016 09:25:00 GMT",服务器就会响应这个首部,若是没有更新,那么就会返回 304 Not Modify 状态码,这样就不须要把文件再次传输,这是定义在 HTTP 标准协议中的,CDN 也有这样的机制。spa
CDN边缘节点会检测用户请求数据的缓存是否过时,若是没有过时,则直接响应用户请求,此时一个完成 HTTP 请求结束;若是数据已通过期,那么CDN还须要向源站发出回源请求(back to the source request),来拉取最新的数据。
在 CDN 管理界面是能够配置资源的缓存时间的,也就是资源存放在 CDN 节点中存活的时间,超时则须要回源,或者在管理界面手工刷新资源。
在 CDN 的响应报文中有这些响应首部:
这些 X 开头的,应该是阿里自定义的 HTTP 首部,用于 CDN 资源状态的判断。