1.什么是CDNCDN全称是(ContentDeliveryNetwork),即内容分发网络。其目的是在现有互联网上增加一层新的CACHE(缓存)层,将网站内容发布到距离用户网络“边缘”最近的节点,使用户就近获取所需内容,提高用户的表现。访问网站的响应能力。从技术上解决网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。简单来说,CDN的工作原理就是把你源站的资源缓存在遍布全球的CDN节点上。当用户请求资源时,将返回缓存在最近节点上的资源,而不是每个用户的请求。从源站获取,避免网络拥堵,缓解源站压力,保证用户访问资源的速度和CDN节点的体验。运营商间互联互通瓶颈带来的影响,减轻了各省出口带宽压力,缓解了骨干网压力,优化了互联网热点内容的分布。二、CDN工作原理传统访问流程从上图可以看出传统访问流程,并没有使用用户访问CDN缓存网站的流程如下:1.用户输入要访问的域名,操作系统向LocalDns查询域名的IP地址。2、LocalDns向ROOTDNS查询该域名的权威服务器(这里假设LocalDns缓存过期)3、ROOTDNS授权该域名dns记录响应LocalDns4。LocalDns获取到该域名的授权dns记录后,继续从该域名授权dns中查询该域名的ip地址。5、域名授权dns查询域名记录后,响应LocalDns6。结束7、用户获取到域名的IP地址后,访问站点服务器。8、站点服务器响应请求,返回内容给客户端。CDN接入流程。访问过程变为:1、用户输入要访问的域名,操作系统向LocalDns查询该域名的ip地址。2、LocalDns查询ROOTDNS获取域名的权威服务器(这里假设LocalDns缓存过期)3、ROOTDNS授权域名dns记录响应LocalDns4。得到域名的授权dns记录后,继续从域名的授权dns中查询域名的IP地址。调度DNS查询域名ip地址7.智能调度DNS会根据一定的算法和策略(如静态拓扑、容量等)将最合适的CDN节点ip地址响应给LocalDns8.LocalDns会得到域名ip地址,响应用户终端9。用户获取域名IP地址后,访问站点服务器。10、CDN节点服务器响应请求并发送内容返回给客户端。(缓存服务器一方面将其保存在本地以备后用;另一方面将获取到的数据返回给客户端,完成数据服务过程。)通过以上分析,我们可以得到,从而实现对于普通用户透明(使用缓存后,用户客户端无需做任何设置)访问,需要使用DNS(域名解析)引导用户访问Cache服务器,实现透明加速服务。由于用户访问网站的第一步是域名解析,因此通过修改dns来引导用户访问是最简单有效的方式。CDN网络的组成对于普通互联网用户来说,每个CDN节点都相当于一个放置在其周围的Web服务器。通过dns的接管,用户请求透明地指向最近的节点。节点中的CDN服务器会像网站的原始服务器一样响应用户的请求。既然离用户更近,响应时间肯定更快。从上图中的虚线圈开始,就是CDN层,位于客户端和站点服务器之间。智能调度DNS(如f5的3DNS)智能调度DNS是CDN服务中的一个关键系统。当用户访问加入CDN服务的网站时,域名解析请求最终会由“智能调度DNS”负责处理。通过一套预定义的策略,将当时离用户最近的节点地址提供给用户,让用户得到快速的服务。同时需要与分布在各地的CDN节点保持通信,跟踪每个节点的健康状态、容量等信息,保证用户的请求分配到最近的可用节点。缓存功能服务负载均衡设备(如lvs、BIGofF5/IP)内容缓存服务器(如squid)共享存储3.术语CNAME记录(CNAMErecord)CNAME是别名(CanonicalName);可用于将一个域名解析为另一个域名,当DNS系统在查询CNAME左边的名字时,会转向CNAME右边的名字,然后搜索,直到最后一个PTR或者一个名字,查询成功后才会响应,否则失败。比如你有一台存储了很多信息的服务器,你使用docs.example.com来访问这些资源,但是你想通过documents.example.com来访问这些资源,那么你就可以使用你的DNS解析服务了provider添加CNAME记录并将documents.example.com指向docs.example.com。添加这条CNAME记录后,所有访问documents.example.com的请求都会被重定向到docs.example.com获取相同的内容。CNAME域名接入CDN时,在CDN提供商控制台添加加速域名后,您将获得CDN为您分配的CNAME域名。你需要给你的DNS解析服务商添加一条CNAME记录,让你的加速域名指向这个CNAME域名,这样所有对这个域名的请求都会被转到CDN节点,从而达到加速的效果。DNSDNS全称DomainNameSystem,意思是域名解析服务。它在互联网上的作用是将域名转换成网络可以识别的IP地址。人们习惯于记住域名,但机器只能识别IP地址。域名和IP地址是一一对应的。它们之间的转换工作称为域名解析。域名解析需要有专门的域名解析服务器来完成。该过程是自动的。例如:上网时输入的www.baidu.com会自动转换为220.181.112.143。常见的DNS解析服务商有:阿里云解析、万网解析、DNSPod、新网解析、Route53(AWS)、Dyn、Cloudflare等回源主机回源主机:回源主机确定回源请求访问的源站具体站点。示例1:源站点是一个域名。源站为www.a.com,回源主机为www.b.com。那么实际的回源请求就是www.a.com解析出来的IP,对应主机上的站点就是www。.b.com例2:源站为IP源站为1.1.1.1,回源主机为www.b.com,则实际回源为网站www.b.comhost对应1.1.1.1。源点回源时使用的协议与客户端访问资源使用的协议一致,即如果客户端使用HTTPS请求资源,如果资源没有缓存在CDN节点上,则节点会使用相同的HTTPS方式回源获取资源;同理,如果客户端使用HTTP协议请求,则CDN节点回源时也使用HTTP协议。作者:Kandy链接:https://www.jianshu.com/p/1dae6e1680ff来源:简书
