什么是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. Aspnet Zero中使用Windows service (Topshelf)来承载Quartz.net任务

    Aspnet Zero使用Windows service (Topshelf)来承载Quartz.net任务 网上有很多关于如何使用Topshelf创建ABP的Quartz windows服务,但很少 ...

  2. 手写AOP实现过程

    一.手写Aop前基础知识 1.aop是什么? 面向切面编程(AOP):是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行OOP开发时,都是基于对组件(比如类)进行开 ...

  3. STL函数库的应用第二弹——快排sort函数与结构体关键字排序

    时隔20多天,本蒟蒻终于记起了他的博客园密码!!! 废话不多说,今天主题:STL快排函数sort()与结构体关键字排序 Part 1:引入和导语 首先,我们需要知道,algorithm库里有一些奇怪的 ...

  4. 第2篇 Scrum 冲刺博客

    1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 无 确定客户端和服务器通信的形式 各成员的代码难以统一 庄诗楷 无 编写客户端UI 加入图片总是失败 易德康 无 马,车 ...

  5. 求X值问题

    这,其实是一道数学题,难就难在要把数学模型用编程语言实现,其中的规律如果看不出来就比较鸡肋,这类题可以算是智商题,做这类题千万不能紧张,血的教训. 题目描述 已知有整数x,x + 100为一个平方数. ...

  6. 尝试写一写4gl与4fd

    4gl DATABASE ds   GLOBALS "../../config/top.global"   DEFINE g_curs_index           LIKE t ...

  7. CSS3动画之animation-timing-function中的stepshan shu

    1.概念 animation-timing-function是规定动画的速度曲线,一般使用的是cubic-bezier() 控制动画曲线的,属性值一般有ease/ease-in/ease-out等,而 ...

  8. ssm框架之异常处理

    异常处理思路 系统中异常包括两类:预期异常和运行时异常runtimeexception,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统的dao.s ...

  9. GA教程:使用自定义变量来扩展高级细分

    http://www.wocaoseo.com/thread-64-1-1.html 您可以使用自定义变量来扩展高级细分的范围. 高级细分依据的标准是用户的会话(访问)数据.如果某个访问者在指定日期范 ...

  10. 3个必备cookie实用方法

    今天跟大家介绍一下三种cookie的使用方法,selenium提供了我们add_cookie()方法来跳过验证码直接登录的方法.我们现在以博客园登录为例,都知道现在博客园登录要拼图验证. 先在网页打开 ...