zoukankan      html  css  js  c++  java
  • Web前端性能优化之CDN

    什么是CDN

    CDN (Content Delivery Network) 可直译成内容分发网络。CDN的本质仍然李咏缓存技术缓存, 解决的是__如何将数据快速可靠从源站传递到用户的问题__。用户获取数据时,不需要直接从源站获取,通过CDN对于数据的分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的。

    CDN加速动机

    为什么不从源站进行数据的直接交付,即让用户直接从源站获取数据呢?
    如果网络上的数据都使用从源站直接交付到用户的方法,那么将极有可能会出现访问拥塞的情况。
    如果能有一种技术方案,将数据缓存在离用户最近的地方,使用户以最快的速度获取,那这对于减少网站的出口带宽压力,减少网络传输的拥堵情况,将起到很大的作用。CDN正是这样一种技术方案。

    CDN原理

    用户在通过浏览器访问未使用CDN加速的网站的大致过程如下:

    1. 用户在浏览器中输入要访问的域名。
    2. 浏览器向DNS服务器请求对该域名的解析。
    3. DNS服务器返回该域名的IP地址给浏览器。
    4. 浏览器使用该IP地址向服务器请求内容。
    5. 服务器将用户请求的内容返回给浏览器。

    如果使用了CDN,则其过程会变成以下这样

    1. 用户在浏览器中输入要访问的域名。
    2. 浏览器向DNS服务器请求对域名进行解析。由于CDN对域名解析进行了调整,DNS服务器会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
    3. CDN的DNS服务器将CDN的负载均衡设备IP地址返回给用户。
    4. 用户向CDN的负载均衡设备发起内容URL访问请求。
    5. CDN负载均衡设备会为用户选择一台合适的缓存服务器提供服务。
      选择的依据包括:
      根据用户IP地址,判断哪一台服务器距离用户最近;
      根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;
      查询各个服务器的负载情况,判断哪一台服务器的负载较小。
      基于以上这些依据的综合分析之后,负载均衡设置会把缓存服务器的IP地址返回给用户。
    6. 用户向缓存服务器发出请求。
    7. 缓存服务器响应用户请求,将用户所需内容传送到用户。
      如果这台缓存服务器上并没有用户想要的内容,而负载均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉取到本地。

    总结

    在网站和用户之间引入CDN之后,用户不会有任何与原来不同的感觉。
    使用CDN服务的网站,只需将其域名的解析权交给CDN的负载均衡设备,CDN负载均衡设备将为用户选择一台合适的缓存服务器,用户通过访问这台缓存服务器来获取自己所需的数据。
    由于缓存服务器部署在网络运营商的机房,而这些运营商又是用户的网络服务提供商,因此用户可以以最短的路径,最快的速度对网站进行访问。因此,CDN可以加速用户访问速度,减少源站中心负载压力。

    努力到无能为力,拼搏到感动自己。 欢迎大家在下方多多评论。
  • 相关阅读:
    SQL Azure (17) SQL Azure V12
    Microsoft Azure News(5) Azure新DV2系列虚拟机上线
    Azure Redis Cache (3) 在Windows 环境下使用Redis Benchmark
    Azure PowerShell (11) 使用自定义虚拟机镜像模板,创建Azure虚拟机并绑定公网IP(VIP)和内网IP(DIP)
    Windows Azure Virtual Machine (31) 迁移Azure虚拟机
    Windows Azure Web Site (16) Azure Web Site HTTPS
    Azure China (12) 域名备案问题
    一分钟快速入门openstack
    管理员必备的Linux系统监控工具
    Keepalived+Nginx实现高可用和双主节点负载均衡
  • 原文地址:https://www.cnblogs.com/wasbg/p/10921373.html
Copyright © 2011-2022 走看看