当前位置: 首页 > Linux

本文深入理解CDN加速原理

时间:2023-04-06 20:14:36 Linux

1.什么是CDNCDN全称是(ContentDeliveryNetwork),即内容分发网络。其目的是在现有互联网上增加一层新的CACHE(缓存)层,将网站内容发布到距离用户网络“边缘”最近的节点,使用户就近获取所需内容,提高用户的表现。访问网站的响应能力。从技术上解决网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。简单来说,CDN的工作原理就是把你源站的资源缓存在遍布全球的CDN节点上。用户请求资源时,会返回缓存在最近节点上的资源,而不是要求每个用户的请求都返回到你的源站获取,避免网络拥塞,减轻源站压力,保证速度和体验访问资源的用户。CDN对网络优化的作用主要体现在以下几个方面:解决服务器端“第一公里”问题缓解甚至消除不同运营商之间互联瓶颈的影响缓解各省出口带宽压力缓解压力骨干网上热点内容在互联网上的分布得到优化。2、CDN工作原理传统的访问流程可以从上图看出。用户访问不使用CDN缓存的网站的过程是这样的:用户输入要访问的域名,操作系统在LocalDns中查询域名的ip地址。LocalDns向该域名的权威服务器发送ROOTDNSQuery(假设这里LocalDns缓存过期)。ROOTDNS会将域名授权dns记录回复给LocalDns。LocalDnsLocalDns将获取到的域名ip地址响应给客户端。用户获取域名ip地址后,访问站点服务器。站点服务器响应请求并将内容返回给客户端CDN。网站的访问过程变成:用户输入要访问的域名,操作系统向LocalDns查询域名的IP地址。LocalDns查询域名授权服务器的ROOTDNS(这里假设LocalDns缓存过期)。ROOTDNS以域名的授权dns记录响应LocalDns。获取域名的授权dns记录后,继续从域名的授权dns中查询域名的ip地址。DNS根据一定的算法和策略(如静态拓扑、容量等)响应最合适的CDN节点ip地址给LocalDnsL-ocalDns会获取域名ip地址,并响应给客户端。用户获取域名ip地址后,访问站点服务器CDN节点服务器响应请求,返回内容给客户端。(缓存服务器一方面将其保存在本地以备后用,另一方面将获取到的数据返回给客户端,完成数据服务过程。)通过以上分析,我们可以得到,为了对普通用户透明(使用缓存后,用户客户端无需做任何设置)访问,需要使用DNS(域名解析)引导用户访问Cache服务器,实现透明加速服务。由于用户访问网站的第一步是域名解析,因此通过修改DNS来引导用户访问是最简单有效的方式。CDN网络的组成部分对于普通互联网用户来说,每个CDN节点都相当于一个放置在其周围的网站服务器。通过DNS接管,将用户的请求透明地定向到最近的节点,节点中的CDN服务器将像网站的原始服务器一样响应用户的请求。既然离用户更近,响应时间必然更快。上图中虚线圈圈出的那块就是CDN层,位于客户端和站点服务器之间。SmartSchedulingDNS(如f5的3DNS)SmartSchedulingDNS是CDN服务中的一个关键系统。当用户访问加入CDN服务的网站时,域名解析请求最终会交由“智能调度DNS”处理。通过一套预定义的策略,为用户提供当时离用户最近的节点地址,让用户得到快速的服务。同时需要与分布在各地的CDN节点保持通信,跟踪每个节点的健康状态、容量等信息,保证用户请求分配到就近的可用节点。缓存功能服务负载均衡设备(如lvs、BIGofF5/IP)内容缓存服务器(如squid)共享存储3.术语CNAME记录(CNAMErecord)CNAME是别名(CanonicalName);可用于将一个域名解析为另一个域名,当DNS系统在查询CNAME左边的名字时,会转向CNAME右边的名字,然后搜索到最后一个PTRorAname,查询成功后才会响应,否则失败。比如你有一台存储了很多信息的服务器,你使用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,那么实际回源就是1.1.1.1对应主机上的网站www.b.com协议回源是指使用的协议回源时与客户端访问资源使用的协议一致,即如果客户端使用HTTPS请求资源,当CDN节点上没有缓存资源时,节点会使用相同的HTTPS方式来请求资源回源获取资源;同理,如果客户端使用HTTP协议请求,则CDN节点回源时也使用HTTP协议。来源:https://www.jianshu.com/p/1da...作者:康提