CDN概况

CDN的全称是Content Delivery Network,即内容分发网络。

CND加速主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些Js、css等文件。

CND加速需要依靠各个网络节点,例如100台CDN服务器分布在全国范围,从上海访问,会从最近的节点返回资源,这是核心。

CND服务器通过缓存或者主动抓取主服务器的内容来实现资源储备。

一、什么是 CDN

CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
简单的说,CDN的工作原理就是将您源站的资源缓存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络拥塞、缓解源站压力,保证用户访问资源的速度和体验

 
CDN节点

CDN对网络的优化作用主要体现在如下几个方面

  • 解决服务器端的“第一公里”问题
  • 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
  • 减轻了各省的出口带宽压力
  • 缓解了骨干网的压力
  • 优化了网上热点内容的分布

二、CDN工作原理

传统访问过程

 
传统访问过程

由上图可见,用户访问未使用CDN缓存网站的过程为:

1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后,回应给 LocalDns
6.LocalDns 将得到的域名ip地址,回应给 用户端
7.用户得到域名ip地址后,访问站点服务器
8.站点服务器应答请求,将内容返回给客户端.

CDN访问过程

 
CDN访问过程

通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

1.用户输入访问的域名,操作系统向 LocalDns 查询域名的ip地址.
2.LocalDns向 ROOT DNS 查询域名的授权服务器(这里假设LocalDns缓存过期)
3.ROOT DNS将域名授权dns记录回应给 LocalDns
4.LocalDns得到域名的授权dns记录后,继续向域名授权dns查询域名的ip地址
5.域名授权dns 查询域名记录后(一般是CNAME),回应给 LocalDns
6.LocalDns 得到域名记录后,向智能调度DNS查询域名的ip地址
7.智能调度DNS 根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给 LocalDns
8.LocalDns 将得到的域名ip地址,回应给 用户端
9.用户得到域名ip地址后,访问站点服务器
10.CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

通过以上的分析我们可以得到,为了实现对普通用户透明(使用缓存后用户客户端无需进行任何设置)访问,需要使用DNS(域名解析)来引导用户来访问Cache服务器,以实现透明的加速服务. 由于用户访问网站的第一步就是域名解析,所以通过修改dns来引导用户访问是最简单有效的方式

1.cdn 静态文件缓存

配置cdn,源站一般是静态网站或者aws的s3桶的地址

2.cdn 动态文件缓存

注:源站是elb的时候,需要把cdn域名配置到后端的服务器上

最新文章

  1. springboot: mybatis集成参考
  2. css-margin与百分数的关系
  3. ubuntu14.04服务版/etc/init.d/smbd restart无效的解决方法
  4. ubuntu 13.10 amd64安装ia32-libs
  5. 怎样查出SQLServer的性能瓶颈
  6. 著名加密库收集 Encrypt
  7. Sharepoint 列表
  8. docker no permmition problem
  9. mongodb基础系列——数据库查询数据返回前台JSP(一)
  10. DataBinding注意事项Error parsing XML: duplicate attribute以及如何在listview中使用DataBinding
  11. 数值选择器(NumberPicker)的功能与用法
  12. 兔子与樱花[HEOI2015]
  13. 超强js博客值得学习!!!
  14. 【论文速读】Yuliang Liu_2017_Detecting Curve Text in the Wild_New Dataset and New Solution
  15. Vue 学习笔记之快速入门篇
  16. Debian Security Advisory(Debian安全报告) DSA-4405-1 openjpeg2
  17. PythonProject(1)vim的Hustoj插件
  18. 《C#数据结构和算法》-排序
  19. Java 反射(简单捋一下)
  20. Navicat for MySQL 安装和破解(完美)

热门文章

  1. Cobalt Strike特征修改
  2. Mac下homebrew的安装与卸载
  3. Python 基础 2-1 列表入门
  4. 【Luogu】【关卡1-8】BOSS战-入门综合练习2(2017年10月)【AK】------都是基础题
  5. day06 python is == 编码 解码
  6. 通信矩阵转DBC
  7. 高性能js之js文件的加载与解析
  8. leetcode-按奇偶排序数组II
  9. 「NOI2016」循环之美(小性质+min_25筛)
  10. Shiro学习(10)Session管理