【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
前言
CDN(Content Delivery Network,内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
国内的 CDN 一般选用七牛、蓝汛等老牌厂商,阿里云的管理界面更加人性化,个人角度来说还是选用阿里的 CDN 方便。
开通 CDN 服务
阿里云把互联网技术都模块化,以服务的形式提供给消费者,这也是云计算带来的便捷,不需要像过去一样人工部署安装维护,产品化模块化的服务。
在阿里云 CDN 控制界面开通服务,添加一个加速域名(加速域名不能与源站域名相同,不然无法生效)
添加完成后,会生成一个 CNAME,在万网或者 dnspod(根据域名选用的解析公司)添加解析即可。
具体可参考阿里云 CDN 帮助文档
测试 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 也有这样的机制。
CDN边缘节点会检测用户请求数据的缓存是否过期,如果没有过期,则直接响应用户请求,此时一个完成 HTTP 请求结束;如果数据已经过期,那么CDN还需要向源站发出回源请求(back to the source request),来拉取最新的数据。
在 CDN 管理界面是可以配置资源的缓存时间的,也就是资源存放在 CDN 节点中存活的时间,超时则需要回源,或者在管理界面手工刷新资源。
在 CDN 的响应报文中有这些响应首部:
这些 X 开头的,应该是阿里自定义的 HTTP 首部,用于 CDN 资源状态的判断。
来源:oschina
链接:https://my.oschina.net/u/2470065/blog/795317