简介
CDN 的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的 Internet 中增加一层新的 CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
常见名词
Origin Server源站
网站的真正的服务器地址。
User
访问者,也就是要访问网站的网民。
Last Mile
最后一公里,也就是网民到他所访问到的 CDN 服务器之间的路径。
域名
服务器默认都会有一个 IP 地址,但是因为数字多不方便记忆,就用容易记忆的域名代替 IP 地址引导访客进入网站点。全世界,没有重复的域名。
A 记录
A 记录用来记录域名对应的 IP 地址,下图的主机记录是域名前缀,记录值是 IP 地址,其他无需修改。主域名的主机记录是@,国内常用的域名前缀是 www,mail 之类的,也可以自定义。
A 记录是使用频率最高的了,很多网站默认使用 A 记录解析域名。不过也有缺点就是容易被发现服务器的真实 IP,导致 DDOS 攻击。
CNAME 记录
CNAME 记录也是一种和 A 记录功能差不多的域名记录方式,它们之间的区别是 A 记录指向 IP 地址,CNAME 记录指向域名。
因此也叫别名记录,用来把域名解析到别的域名上。常用于 mail 邮箱解析和 CDN 加速解析,特别是 CDN 加速解析是现在 CNAME 记录最大的用途了。如下图主机记录是 www(或自定义),记录类型是 CNAME,记录值是从 CDN 加速网站获取的。也就是说将自己的加速域名指向这个 CNAME 域名,这样该域名所有的请求才会都将转向 CDN 的节点,达到加速效果。
DNS
DNS 即 Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与 IP 地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。比如:上网时输入的百度一下,你就知道会自动转换成为220.181.112.143
边缘节点
也称 CDN 节点、Cache 节点等;是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。其作用是将访问量较大的网页内容和对象保存在服务器前端的专用 cache 设备上,以此来提高网站访问的速度和质量。
cache
cache 高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主 RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。
原理
就以访问一个网站为例:
当用户点击网站链接时,首先经过本地的 DNS 系统解析,DNS 系统最终会将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器
CDN 的 DNS 服务器将CDN的全局负载均衡设备 IP 地址返回给用户
用户向 CDN 的全局负载均衡设备发起 URL 访问请求
CDN 全局负载均衡设备根据用户的 IP 地址,以及用户请求的 URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求
区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择依据包括:根据用户的 IP 地址,判断哪一台服务器距离用户最近;根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需的内容;查询各个服务器当前负载情况,判断哪一台服务器有服务能力基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的 IP 地址。
全局负载均设备把服务器的IP地址返回给用户。
用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需的内容传送到用户终端。如果这台缓存服务器上并内有用户想要的内容,而区域服设备依然将它分配给了用户,那么这台服务器就要向上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
CDN 的优势
- 跨运营商、地域的全网覆盖、网站访问速度更快
- CDN 负载均衡和 CNAME 别名解析保障网站安全
- 当某个服务器发生意外故障,系统将会调用其他健康的服务器进行服务,异地备份
- 不需要技术运维,节约成本投入、精力、财力
- 让你更专注业务本身
reference
- 本文标题:什么是CDN
- 本文作者:9unk
- 创建时间:2019-12-07 15:52:06
- 本文链接:https://9unkk.github.io/2019/12/07/shi-me-shi-cdn/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!