美文网首页
CDN,使你的站点访问更快

CDN,使你的站点访问更快

作者: OOM_Killer | 来源:发表于2019-08-03 15:22 被阅读0次

全球有这么多的数据中心,无论从哪里上网,临近不远的地方基本都有数据中心,比如位于山西阳泉的 百度云计算(阳泉)中心。那是不是在这些数据中心缓存部分数据,那么用户访问数据的时候,就可以就近访问了呢?
当然可以,这些分布在各个数据中心的节点就是 边缘节点
边缘节点很多,但是不一定是大规模的,所以在每个边缘节点之上还有规模更大的区域节点,在区域节点之上,还有更大的中心节点。
下面解释CDN分发系统的架构

CDN.jpg
CDN的缓存时一层一层的,能不访问到后端真正的源,就不打扰它,当中心节点都拿不到资源的时候,那就只能回源了。
客户端如何访问到CDN

那么CDN可以将资源放到用户的跟前,用户如何去拿呢?
有了CDN,假设访问 域名 www.web.com ,在web.com这个权威DNS服务器上,会设置一个CNAME别名,指向另一个域名 www.web.cdn.com,返回本地的DNS服务器。本地DNS服务器拿到这个cname域名后还是需要继续解析的,这个时候就访问 www.web.cdn.com 这时,web.cdn.com 就是权威DNS服务器。这是CDN自己的权威DNS服务器,这个时候,它还是会把它设置成一个CNAME,指向另一个域名,假设为 www.yd.web.cdn.com 。这也就是 CDN网络的全局负载均衡器。
接下来,本地DNS服务器去请求CDN的全局负载均衡器解析域名,全局负载服务器会挑一个合适的结果给客户。
选择的依据为

  1. 根据用户IP地址,判断一个距离用户最近的。
  2. 用户运营商。
  3. 根据用户URL所携带的内容名称。
  4. 查询各个服务器的当前负载情况,判断哪个机器尚有服务能力。

至此,客户端就访问到了CDN上的资源,当这个服务器没有相关资源的时候,边缘节点就会向它的上一级请求相关的数据。直至追溯到网站的源服务器将内容拉到本地。

CDN 可以缓存的内容

CDN可以缓存的内容有很多,尤其是图片,视频类的,CDN是支持流媒体协议的。
对于小的静态图片,CDN可以采用拉取的方式,也就是没有发现命中的情况下会去上一级拉取,源站不会有太大的压力。
但是对于流媒体这种特别大的就需要采用推送了,将热点数据主动推送到边缘节点。
当然,图片,流媒体这种,CDN还要做好防盗链准备,要不我花钱买的CDN,被别人拿去加速了。
常见的防盗链都是靠 NGINX上的一些策略做的,如referer字段,但这太简单,容易被破解。另外就是时间戳防盗链。

  • 时间戳防盗链
    客户端取出当前的时间戳,要访问的资源及路径,连同加密字符串进行签名算法得到一个字符串,然后生成一个链接,带上这个签名字符串和截止时间戳去访问CDN。
    在CDN的服务端取出过期时间,和当前的CDN节点作比较,确认请求是否过期。并根据相同的签名算法计算签名,如果匹配则一致,访问才会合法。
动态数据如何缓存

前面的图片,流媒体都是静态的。那如果是动态数据呢。
动态CDN也是有解决方法的。
一种是边缘计算模式。既然数据是动态生成的,那么数据的计算逻辑和存储都放到边缘的节点上,其中定时从源数据那里同步数据。
一种是路径优化模式。数据仍然从源站生成,但是,数据的下发可以通过CDN网络,对路径进行优化,因为CDN节点多,能够找到非常高质量的线路,中间链路由CDN来优化,就像专线一样来访问。
下面这张图片来自七牛云的 CDN 加速官网的介绍 https://www.qiniu.com/products/fusion

CDN

参考 : 极客时间:刘超老师的CDN

相关文章

  • CDN,使你的站点访问更快

    全球有这么多的数据中心,无论从哪里上网,临近不远的地方基本都有数据中心,比如位于山西阳泉的 百度云计算(阳泉)中心...

  • CDN的主要特点

    1、CDN加速服务提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性 2、...

  • CDN简介

    CDN,相信你对这个名词一点也不陌生,经常我们会说,把某些文件图片上传到CDN,那样子用户访问会更快,那什么是CD...

  • 让站点接入阿里云CDN

    假设我们站点域名是pp.cn 我们希望以后通过cdn.pp.cn访问到站点下某个目录下的资源,这些资源全部部署阿...

  • CDN缓存

    CDN(Content Delivery Network)内容分发网络。 客户端直接从源站点获取数据,当服务器访问...

  • 七牛云CDN

    今天给源站点添加了CDN加速功能,大概的步骤如下:1.在万网添加域名解析A记录,保证站点可访问,并且我们进行了如下...

  • jQuery选择器

    Microsoft CDN: 提示:使用谷歌或微软的 jQuery,有一个很大的优势:许多用户在访问其他站点时,已...

  • 使用cloudflare为你的WordPress网站加速!

    CloudFlare是一个CDN(内容交付网络)。它从离访问者最近的位置提供内容。这将加快站点的加载时间。他们在世...

  • 解决: 网站访问报错 AccessDenied (阿里云 OSS

    1. 使用阿里云 OSS服务 + CDN 服务后,直接用顶级域名访问个人站点失败,报错如下: 2. 原因及解决: ...

  • Token 防盗链详解

    前言 随着互联网的高速发展,无论是移动 APP 还是 WEB 站点,访问的安全问题始终困扰着内容提供商。CDN (...

网友评论

      本文标题:CDN,使你的站点访问更快

      本文链接:https://www.haomeiwen.com/subject/zyhjdctx.html