什么是CDN

CDN的全称是Content Delivery Network,即内容分发网络。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

CDN的访问流程

传统访问

访问流程:

  1. 北京联通用户访问www.a.com;
  2. 本地DNS向a.com的权威DNS发起查询;
  3. 权威DNS返回www.a.com的A记录;
  4. local把IP地址告诉用户的电脑;
  5. 用户通过IP进行访问想要访问网站;
  6. 网站返回用户请求的资源;

CDN访问

访问流程:

  1. 北京联通用户访问www.a.com;

  2. 本地DNS向a.com的权威DNS发起查询;

  3. 权威DNS返回给用户CNAME记录,指向CDN的智能调度系统cdn.com;

  4. 本地DNS请求cnd.com的A记录;

  5. 通过DNS视图或者其他的调度算法,返回距离本地DNS最近的节点的A记录;

  6. 本地DNS返回给用户要访问的IP,为CDN节点的IP

  7. 用户访问CDN节点;

  8. CDN节点如果有数据,返回给用户数据;

  9. 如果CDN站点数据过期或者没有,向源站请求,之后返回给用户,同时自己保留一份副本。

  10. local把IP地址告诉用户的电脑;

  11. 用户通过IP进行访问想要访问网站;

  12. 网站返回用户请求的资源;

在这些步骤里面,主要的有两个关键技术:

  • DNS视图:

    通过定义ACL进行IP地址分类,通过 view 的 match-clients 配置不同的zone文件,从而达到调度至最近的CDN节点。

  • 缓存:

    通过Varnish,Squid等缓存类的服务,把后端节点的一些资源缓存在该节点,当用户请求资源时,如果CDN节点有的资源,直接返回,避免去后端请求。通过HTTP的一些缓存控制机制对缓存时效性进行控制,如果是资源过期,则会去后端请求,返回给用户,同时自己保留一份,当用户需要再次请求时,直接返回。

CDN数据刷新

  1. 主动刷新

    设置时间策略。针对不同的内容设置不同的刷新时间,对于更新频率比较低的内容设置长时间如1天;对频繁更新的内容,我们可以设置成10分钟或更短,用来保持内容的一致。设置刷新时间可以按目录来设置,也可以按具体URL来设置,也可以按某个关键字段来设置。

  2. 被动刷新

    当用户访问到数据之后,CDN没有,或者数据过期,然后去请求源站去拉取内容,使得自身内容保持一致

3.CDN加速简介的更多相关文章

  1. 七牛云 融合CDN测试域名 -> 融合CDN加速域名

    七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...

  2. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  3. 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)

    网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...

  4. Signalr系列之虚拟目录详解与应用中的CDN加速实战

    目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...

  5. 利用免费cdn加速webpack单页应用

    回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了:   1 2 3 4 5 6 MacBook-Pro:output ba ...

  6. c#获取ip的方法cdn加速获取真实ip方法

    服务端://方法一HttpContext.Current.Request.UserHostAddress; //方法二HttpContext.Current.Request.ServerVariabl ...

  7. 怎么看网站是否开启CDN加速?测试网站全国访问速度方法详解

    注意域名,动静分离的网站,只对静态文件的域名做了cdn 怎么看网站有没开启CDN? 要看一个网站是否开启CDN,方法很简单,只要在不同的地区ping网址就可以,比如在山东济南ping www.jb51 ...

  8. 2014年十个优秀的免费CDN加速服务-国内和国外免费CDN

    这是一篇总结近几年来网络上出现了各类免费CDN服务的文章,文章本来应该早就发出来的,但是因为近期的各种原因一直拖到现在.之前部落已经总结了近几年来的优秀免费空间,新手朋友不必在茫茫“网”海中寻找免费空 ...

  9. jquery cdn加速点

    新浪jquery cdn加速点: <script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.js">< ...

随机推荐

  1. HBA卡常用命令

    HBA卡信息查看 查看对应的PCI设备lspci | grep LSI 如下:对应的HBA卡命令为sas3ircu 如下:对应的HBA卡使用sas2ircu 查看LSI控制器类型和型号 sas2irc ...

  2. cvsnt 和wincvs 的安装配置既简单操作 2007-07-28 11:33

    CVSNT 配置 版本:CVSNT 2.5.03(Scorpio)Build 2382 安装过程:简单一路next即可. 配置: (一)我们先准备好两个目录,分别是KHRoot,和KHTemp.KHR ...

  3. Android 本地缓存Acache的简单使用

    设置缓存数据: ACache mCache = ACache.get(this); mCache.put("key1", "value"); //保存6秒,如果 ...

  4. 从开源协议到谷歌禁用华为、Docker实体清单事件

    ​平时我们在日常开发生活都在大量和开源软件打着交道,例如安卓.Linux.Github.Docker等,而其中开源协议比如MIT.Apache也是耳熟能详,但是真正对开源协议的了解相信对大部分人来说都 ...

  5. (数据科学学习手札94)QGIS+Conda+jupyter玩转Python GIS

    本文完整代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 QGIS随着近些年的发展,得益于其开源免费 ...

  6. 洛谷 P4284 [SHOI2014]概率充电器 概率与期望+换根DP

    洛谷 P4284 [SHOI2014]概率充电器 概率与期望+换根DP 题目描述 著名的电子产品品牌\(SHOI\) 刚刚发布了引领世界潮流的下一代电子产品-- 概率充电器: "采用全新纳米 ...

  7. 一个简单的Android音乐播放器

    Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...

  8. TinkPHP框架开发的CRMEB小程序商城v4.0二次开发集成支付宝支付

    前言 大家都知道支付宝支付和微信支付宝都只能局限在自己的平台,微信内支付宝支付是根本就不能使用,即使是公众号支付也需要跳转到外部浏览器才可以唤起支付宝支付,并且QQ浏览器唤起支付宝支付还是问题很多,所 ...

  9. ugui 自定义字体

    Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...

  10. Unity报与System.IO相关的错误

    比如这个: Type `System.IO.FileInfo' does not contain a definition for `OpenText' and no extension method ...