zoukankan      html  css  js  c++  java
  • cdn 的配置及原理

    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域名配置到后端的服务器上

  • 相关阅读:
    MySQL数据库(2)
    mysql数据库(1)
    python是动态语言
    元类
    Django 全文检索
    Django 分页的实现
    FastDFS分布式存储服务器的使用
    FastDFS分布式存储服务器安装
    Django 获取用户历史浏览记录(基于Redis缓存)
    LoginRequiredMixin类的使用
  • 原文地址:https://www.cnblogs.com/wangyh702/p/11941713.html
Copyright © 2011-2022 走看看