1、CDN概念
CDN是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片等文件发送给用户,来提高性能、可扩展性及低成本地网络内容传递给用户。
典型的CDN可分为:
a、分发服务系统:最基本的工作单元就是Cache设备,cache负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存到本地。Cache设备的数量、规模、总服务能力是衡量一个CDN系统服务能力的最基本的指标。
b、负载均衡系统:主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡GSLB和本地负载均衡SLB。全局负载均衡主要根据用户就近性原则,通过对每个服务节点进行"最优"判断,确定向用户提供服务的cache的物理位置。本地负载均衡主要负责节点内部的设备负载均衡。
c、运营管理系统:运营管理系统分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、统计分析等功能。
2、CDN的作用
CDN一般会用来托管Web资源(文本、图片、脚本等),可供下载的资源(媒体文件、软件、文档等),应用程序(门户网站等),使用CDN来加速这些资源的访问。CDN作为一种基础的云服务,同样具有资源托管、按需扩展等方面的优势。
性能方面,引入CDN的好处在于:用户收到的内容来自最近的数据中心,延迟更低,内容加载更快;部分资源请求分配给了CDN,减少了服务器的负载。
安全方面,CDN有助于防御DDoS(通过监控分析异常流量,限制其请求频率)、MITM(从源服务器CDN节点到ISP,全链路HTTPS通信)等网络攻击。
3、CDN工作原理
a、用户未使用CDN缓存资源的过程:
浏览器通过DNS对域名进行解析,依次得到此域名对应的IP地址;
浏览器根据得到的IP地址,向域名的服务主机发送数据请求;
服务器向浏览器返回响应数据。
b、用户使用CDN缓存资源的过程:
通过本地DNS对点击的url进行解析,发现该url对应的是一个CDN专用的DNS服务器,DNS系统就会将域名解析权交给CNAME(在域名解析中,实际上解析出来的指定域名对应的IP地址,或者该域名的一个别名,然后再根据这个别名查找对应的IP地址)指向的CDN专用的DNS服务器;
CDN专用的DNS服务器将CDN的全局负载均衡设备IP地址返回给用户;
用户向CDN的全局负载均衡设备发起数据请求;
CDN的全局负载均衡设备根据用户的IP地址,以及用户请求的内容url,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求;
区域负载均衡设备选择一台合适的缓存服务器来提供服务,将该缓存服务器的IP地址返回给全局负载均衡设备;
全局负载均衡设备把服务器的IP地址返回给用户;
用户向该缓存服务器发起请求,缓存服务器响应用户的请求,将用户所需内容发送至用户终端;
如果缓存服务器没有用户想要的内容,那么缓存服务器就会向它的上一级缓存服务器请求内容,以此类推,直到获取到需要的资源。如果最后还是没有,就会回到自己的服务器去获取资源。
4、CDN的使用场景
使用第三方的CDN服务:如果想要开源一些项目,可以使用第三方的CDN服务;
使用CDN进行静态资源缓存:将项目的静态资源(img、css、js)放在CDN上,可以将整个项目放到CDN上,一键部署;
直播传送:直播可以用CDN来提高访问速度。CDN在处理流媒体一般都是采用主动推送的方式进行。