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

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

访问流程:
北京联通用户访问www.a.com;
本地DNS向a.com的权威DNS发起查询;
权威DNS返回给用户CNAME记录,指向CDN的智能调度系统cdn.com;
本地DNS请求cnd.com的A记录;
通过DNS视图或者其他的调度算法,返回距离本地DNS最近的节点的A记录;
本地DNS返回给用户要访问的IP,为CDN节点的IP
用户访问CDN节点;
CDN节点如果有数据,返回给用户数据;
如果CDN站点数据过期或者没有,向源站请求,之后返回给用户,同时自己保留一份副本。
local把IP地址告诉用户的电脑;
用户通过IP进行访问想要访问网站;
网站返回用户请求的资源;
在这些步骤里面,主要的有两个关键技术:
DNS视图:
通过定义ACL进行IP地址分类,通过 view 的 match-clients 配置不同的zone文件,从而达到调度至最近的CDN节点。缓存:
通过Varnish,Squid等缓存类的服务,把后端节点的一些资源缓存在该节点,当用户请求资源时,如果CDN节点有的资源,直接返回,避免去后端请求。通过HTTP的一些缓存控制机制对缓存时效性进行控制,如果是资源过期,则会去后端请求,返回给用户,同时自己保留一份,当用户需要再次请求时,直接返回。
CDN数据刷新
主动刷新
设置时间策略。针对不同的内容设置不同的刷新时间,对于更新频率比较低的内容设置长时间如1天;对频繁更新的内容,我们可以设置成10分钟或更短,用来保持内容的一致。设置刷新时间可以按目录来设置,也可以按具体URL来设置,也可以按某个关键字段来设置。被动刷新
当用户访问到数据之后,CDN没有,或者数据过期,然后去请求源站去拉取内容,使得自身内容保持一致
3.CDN加速简介的更多相关文章
- 七牛云 融合CDN测试域名 -> 融合CDN加速域名
七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...
- Signalr系列之虚拟目录详解与应用中的CDN加速实战
目录 对SignalR不了解的人可以直接移步下面的目录 SignalR系列目录 前言 前段时间一直有人问我 在用SignalR 2.0开发客服系统[系列1:实现群发通讯]这篇文章中的"/Si ...
- 利用免费cdn加速webpack单页应用
回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了: 1 2 3 4 5 6 MacBook-Pro:output ba ...
- c#获取ip的方法cdn加速获取真实ip方法
服务端://方法一HttpContext.Current.Request.UserHostAddress; //方法二HttpContext.Current.Request.ServerVariabl ...
- 怎么看网站是否开启CDN加速?测试网站全国访问速度方法详解
注意域名,动静分离的网站,只对静态文件的域名做了cdn 怎么看网站有没开启CDN? 要看一个网站是否开启CDN,方法很简单,只要在不同的地区ping网址就可以,比如在山东济南ping www.jb51 ...
- 2014年十个优秀的免费CDN加速服务-国内和国外免费CDN
这是一篇总结近几年来网络上出现了各类免费CDN服务的文章,文章本来应该早就发出来的,但是因为近期的各种原因一直拖到现在.之前部落已经总结了近几年来的优秀免费空间,新手朋友不必在茫茫“网”海中寻找免费空 ...
- jquery cdn加速点
新浪jquery cdn加速点: <script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.js">< ...
随机推荐
- LeetCode 90 | 经典递归问题,求出所有不重复的子集II
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第56篇文章,我们一起来看看LeetCode第90题,子集II(Subsets II). 这题的官方难度是Medi ...
- 我的第一个程序Hello world
//include:导入一个文件:stdio:标准输入输出库(std是一个标准库:i:input:o:output:):.h:头文件:<>:表示导入系统文件:“”表示导入系统文件 #inc ...
- 极简 Node.js 入门 - 3.1 File System API 风格
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 为 Eureka 添加 Http Basic 认证
简介 在网络世界中,任何网络中的服务都是不安全的,为了使我们的 Eureka 服务更加安全,我们可以添加各种各样的认证方式,以使客户端在提供相应的证明之后才能够注册到 Eureka 中.而这次我们就添 ...
- Android Failed to find layer (XXX/XXX.xxActivity#0) in layer parent (no-parent).
报错: Failed to find layer (XXX/XXX.xxActivity#0) in layer parent (no-parent). 解决: 将该xxActivity复制一份到桌面 ...
- linux驱动之模块化驱动Makefile
本文摘自http://blog.csdn.net/lufeiop02/article/details/6446343 Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式. ...
- 《Python 测试开发技术栈—巴哥职场进化记》—每日站会的意义
上文<Python测试开发技术栈-巴哥职场进化记>-一道作业题我们讲到华哥给巴哥出了一道作业题,让巴哥用Python实现记录日志的功能,巴哥历经"千辛万苦",终于做出了 ...
- random模块python
random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.random() 用于生成一个随机浮点数:range[0.0,1.0) ? 1 2 import ran ...
- cinderclient命令行源码解析
一.简介 openstack的各个模块中,都有相应的客户端模块实现,其作用是为用户访问具体模块提供了接口,并且也作为模块之间相互访问的途径.Cinder也一样,有着自己的cinder-client. ...
- CKA认证经验贴(认证日期:20200817)
一.背景 由于年初疫情影响,身处传统IT行业且兼职出差全国各地“救火”的我有幸被领导选中调研私有云平台,这就给我后来的认证之路做下了铺垫.之前调研kubernetes的v1.17版本自带kubeadm ...