什么是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. Oracle数据库启动及状态等查询

    一.监听 1)启动监听: lsnrctl start 2)查看监听状态: lsnrctl status 3)停止监听: lsnrctl stop 4)检查是否可进行网络连接: tnsping ${si ...

  2. asp.net core mvc和angular项目的一些问题

    最近公司布置任务,用asp.net core mvc和angular改写原来的一个用Silverlight做的项目.从来没搞过,找了两本书看了一天,又看了一天代码,大致心里有底了,就开始动手.没想到一 ...

  3. TfidfVectorizer、CountVectorizer 和 TfidfTransformer 的简单教程

    TfidfVectorizer.CountVectorizer 和 TfidfTransformer 是 sklearn 中处理自然语言常用的工具.TfidfVectorizer 相当于 CountV ...

  4. VM 添加硬盘,分区,挂载

    添加硬盘后使用>df -h 命令 VM安装linux系统之后,发现我们的硬盘不够,可通过两种方式添加硬盘 方式一:选择虚拟机,点击右键,设置,点击硬盘,点击添加,输入新添加的硬盘大小,保存与虚拟 ...

  5. Hyperledger Fabric 手动搭建【区块链学习三】

    Hyperledger Fabric 手动搭建 前面我们学习了区块链是什么.还有自动搭建学习东西我们就要从简单到深入(入门到放弃),现在自动部署已经跑通了接下来就是手动搭建Fabric 网络可以更好的 ...

  6. 第2章 RDD编程(2.3)

    第2章 RDD编程(2.3) 2.3 TransFormation 基本RDD Pair类型RDD (伪集合操作  交.并.补.笛卡尔积都支持) 2.3.1 map(func) 返回一个新的RDD,该 ...

  7. 测试和发布说明(Alpha版本)

    Alpha版本测试报告 1.测试中发现的BUG 已修复  服务器无法发送邮件 重复上传同一首歌曲 下载进度无法实时跟进 可以多次点击上传 注册验证码失真 上传结束无法及时清理队列信息 不可重现的BUG ...

  8. 第六篇scrum冲刺

    一. 站立式会议 1.会议照片 2. 项目进展 团队成员 昨日完成任务 今日计划任务 吴茂平  新消息提醒功能设计 实现开发新消息提醒功能 陈忠明 歌曲批量下载压缩包 歌手收藏功能 吴尚谦  设计下载 ...

  9. 可爱的python

    可爱的python 作者:  哲思社区出版社: 电子工业出版社 优点 1. 案列讲解很详细,前几章的内容恰好是我想要了解的,例如利用python os模块读取磁盘的文件,或者获得文字的编码方式.这些内 ...

  10. Hadoop的SecondaryNameNode的作用是什么?

    为节省篇幅,将SecondaryNameNode简称SNN,NameNode简称NN. NN与fsimage.edits文件 NN负责管理HDFS中所有的元数据,包括但不限于文件/目录结构.文件权限. ...