4

内容分发网络 CDN - 真正的飞鱼

 1 year ago
source link: https://www.cnblogs.com/feiyu2/p/CDN.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

介绍 CDN

内容分发网络(英语:Content Delivery Network 或 Content Distribution Network,缩写:CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。


CDN 基于这样的原理:

  • 挑选最优的设备为用户提供服务;
  • 如果某个内容被很多用户所需要,那么就将它缓存到距离用户最近的节点中。

CDN 公司在整个互联网上部署数以百计的 CDN 服务器(Cache),这些服务器通常在运营商的互联网数据中心(Internet Data Center,IDC)中,尽量靠近接入网络和用户。CDN 在 Cache 中复制内容,当内容的提供者更新内容时,CDN 向 Cache 重新分发这些被刷新的内容。

CDN 提供一种机制,当用户请求内容时,该内容能够由以最快速度交付的 Cache 来向用户提供,这个挑选 “最优” 的过程就叫做负载均衡。被选中的最优 Cache 可能最靠近用户,或者有一条与用户之间条件最好的路径。

CDN 的工作过程

使用 CDN 服务的网站是如何向用户提供服务的呢?

基于 DNS 解析的 GSLB 系统是目前 CDN 服务商采用比较多的 GSLB 方案。基于 DNS 解析的 GSLB 系统的实现又有几种不同的方式:

  • 通过 CNAME 方式实现负载均衡;
  • 负载均衡器作为权威 DNS 服务器;
  • 负载均衡器作为代理 DNS 服务器。

其中通过 CNAME 方式实现负载均衡是目前业界使用最多的方式。


通过 CNAME 方式实现负载均衡,一个用户的访问流程为:

image-20230301143452601.png

当用户在浏览器的地址栏中输入 URL 并点击回车后,浏览器首先判断 URL 中的是 IP 地址,还是域名。如果 URL 中的是域名,那么首先要做的就是域名解析。

域名解析的过程:首先是浏览器查看浏览器的缓存。

  • 1、2、3:如果浏览器中没有该域名的缓存,那么浏览器询问【本地 DNS 解析器】,【本地 DNS 解析器】首先查看本地 DNS 缓存。如果本地 DNS 缓存中没有该域名的缓存,那么【本地 DNS 解析器】请求【本地 DNS 服务器】进行域名解析。
  • 4、5、6:如果【本地 DNS 服务器】中没有该域名的缓存,那么【本地 DNS 服务器】向 DNS 系统中的其他远程 DNS 服务器发送查询请求。

在 domain.com 域的域名服务器中,将 host.domain.com 域名的 CNAME 记录设置为其他的域名(CDN 服务商的域名的子域名),比如设置为 host.domain.com.cdn.dnsv1.com。

  • 7:【本地 DNS 服务器】获取到 domain.com 域的域名服务器,向其发送 host.domain.com 域名解析请求, domain.com 域的域名服务器返回 CNAME 记录,该 CNAME 记录的值为 host.domain.com.cdn.dnsv1.com(CDN 服务商的域名的子域名)。
  • 8:【本地 DNS 服务器】获取到 cdn.dnsv1.com 域的域名服务器(CDN 专用的域名服务器),向其发送 host.domain.com.cdn.dnsv1.com 域名解析请求。

这样就将网站域名的解析权交给了 CDN 专用的域名服务器,由 CDN 专用的域名服务器进行网站域名的解析。

  • 9、10:【本地 DNS 服务器】收到域名的解析结果后,【本地 DNS 服务器】缓存数据,并将解析结果返回给【本地 DNS 解析器】。【本地 DNS 解析器】缓存数据,并将解析结果返回给【客户端】。
  • 11:【客户端】缓存数据,并向缓存服务器发送请求,缓存服务器响应【客户端】的请求,将用户所需的内容返回给【客户端】。如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

CDN 服务商的职责:CDN 专用的域名服务器将域名解析成缓存服务器的 IP 地址。

CDN 使用者的任务:使用 CDN 服务的网站,将网站域名的解析权交给 CDN 专用的域名服务器,再将需要分发的内容注入 CDN(或者由 CDN 拉取),就可以实现内容加速了。

CDN 的应用

CDN 可完成:内容缓存、负载均衡、流媒体加速、动态内容加速 等任务。

《CDN 技术详解》

CDN技术详解-雷葆华著-微信读书 (qq.com)

内容分发网络 | 凤凰架构 (icyfenix.cn)

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK