1. 全局负载均衡(基于DNS)

如果有多台 WEB 服务器同时为一个域名提供服务时,即一条 URL 对应多个 IP 地址,那么该 URL 的权威域名服务器可能会根据该 URL 解析出多个 IP 地址,并根据每个 IP 地址所对应的服务器的性能和负载状况选择出最优的服务器 IP 地址返回给用户,用户根据该地址进行访问。

如图所示,步骤详解:

  1. 用户访问一个网站(www.blog.myyd.com),向本地 DNS 服务器请求该域名对应的 IP 地址
  2. 由于是第一次访问,本地 DNS 服务器也没有缓存记录,于是进行递归查询
  3. 递归查询返回的结果是指向该网站的权威域名服务器,于是本地 DNS 服务器向该权威域名服务器请求该域名所对应的 IP 地址
  4. 权威域名服务器根据自己本地配置的负载均衡策略(如A记录)返回一台 CDN 边缘节点的 IP 地址给本地 DNS 服务器(返回的IP是Virtual-IP2)
  5. 本地 DNS 服务器拿到 IP 地址后返回给用户
  6. 用户根据本地 DNS 服务器返回的地址(VIP2)对真实服务器进行访问
  7. 服务器返回响应

2. 本地负载均衡(基于LVS-DR)

对上图第 ⑥ 步的扩展:

  1. 用户(Client)向该 URL 对应的 IP 地址(VIP)发出请求,此时报文 IP 头是:src-ip=CIP|dst-ip=VIP,经过运营商的网络到达服务器集群的出口网关(Router)
  2. 网关(Router)拆开报文发现 dst-ip=VIP 在本地配置的静态路由中,下一跳指向 DIP,于是将报文重新封装好并且将 dst-mac 改为 DR-mac 发给 Switch
  3. Switch 查询 CAM 表后发送给 DR
  4. 实际上 DR 内核中的 IPVS 模块先收到该报文,然后判断 dst-ip 是否是 VIP 并且该数据包请求的服务是否是后端 RS 提供的服务?若是则执行 IPVSadm 中配置的负载均衡策略,并将 dst-ip 改为策略选中的 RS 的 RIP(不是VIP)
  5. RS 收到后直接将响应返回给用户(Client),不经过 DR

网页访问过程(基于CDN)的更多相关文章

  1. 用户对动态PHP网页访问过程,以及nginx解析php步骤

    www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...

  2. web理论知识--网页访问过程(附有Django的web项目访问流程)

    当我们闲暇之余想上网看看新闻,或者看个电影,通常的操作是:打开电脑.打开浏览器.输入网址.浏览页面信息.点击自己感兴趣的连接......那么有没有想过,这些网页从哪里来的?过程中计算机又做了什么事情了 ...

  3. 使用CDN的网络访问过程

    CDN是指内容分发网络,在网络各处架设节点服务器,当用户访问时,CDN系统会根据网络流量.到用户的距离等因素将请求导向离用户最近的节点上. 访问过程是: 1.用户向浏览器提供要访问的域名. 2.浏览器 ...

  4. 页面访问过程及get/post的理解——

    Chrome查看开发者工具面板,常看的一些数据? Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈. Console:记录开发者开发过程中 ...

  5. 图片流量节省大杀器:基于CDN的sharpP自适应图片技术实践

    版权声明:本文由陈忱原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/156 来源:腾云阁 https://www.qclou ...

  6. PHP 简易网页访问统计

    传统的网页访问统计,已经有很多,如 51la.百度统计.站长统计 一般都需要引用JS,在你的网页内嵌入JS,这个操作存在风险,并且不可控. 可以考虑使用 [img src.css src.link h ...

  7. JavaScript(2)——网页解析过程

    JavaScript 网页解析过程 前端编程工具:Visual Studio Code 快捷语法:Emmett语法 正题: 当我们在浏览器输入网址的时候,从服务器下载网页:这个文字经过HTML解析器的 ...

  8. 网页中"IE限制网页访问脚本或ActiveX控件"的提示问题的解决方法

    以前从来没有注意过"IE限制网页访问脚本或ActiveX控件"的提示问题,对于这个小细节问题,虽然感觉很别扭,但一直没考虑解决方法,今天才发现该问题可以轻松解决,以下做个小小记录. ...

  9. svn_linux + apache 实现网页访问svn

    CentOS7:搭建SVN + Apache 服务器实现网页访问 1. 安装httpd 安装httpd服务: $ sudo yum install httpd 检查httpd是否安装成功: $ htt ...

随机推荐

  1. how browser works

    https://developers.google.com/speed/articles/reflow http://blog.letitialew.com/post/30425074101/repa ...

  2. 【转】在发布站点前,Web开发者需要关注哪些技术细节

    转摘:http://www.csdn.net/article/2014-05-19/2819818-technical-details-programmer 在网站发布前,开发者需要关注有许多的技术细 ...

  3. swt TableViewer

    http://blog.163.com/bluefield_wild/blog/static/8182709520085612235336/ package list; import java.uti ...

  4. 【python3】爬取鼠绘汉化的海贼王漫画

    特别说明: 因为早些时候鼠绘的接口调整,之前的代码已经不能用了. 正好最近在学习scrapy,于是重新写了一个,项目放在github  https://github.com/TurboWay/ishu ...

  5. 2-功能1:基于用户认证组件和Ajax实现登录验证(图片验证码)

    1.登录页面的设计 (1)label标签的id属性 label标签的id属性,点击label标记,相当于点击了input框 bootstarp样式 class="form-group&quo ...

  6. 爬虫-设置代理ip

    1.为什么要设置代理ip 在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败.高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...

  7. Spring的IOC理解(转载)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  8. ASP.NET MVC Bundles 之学习笔记

    在网页中,我们经常需要引用大量的javascript和css文件,在加上许多javascript库都包含debug版和经过压缩的release版(比如jquery),不仅麻烦还很容易引起混乱,所以AS ...

  9. 有关JOIN ON的心得体会

    在第一家公司工作大概有一年之后,我的上司开始让我负责一个项目了. 说起这个项目,其实就是类似一个报表系统的抽数据的活.我的主要工作就是将我们公司产生的数据进行抽取清理,然后生成一些带有分析性质的数据. ...

  10. GitHub笔记(四)——标签管理

    五 标签管理 1 打标签.默认master $ git tag v1.0 要对add merge这次提交打标签,它对应的commit id是f52c633,敲入命令: $ git tag v0.9 f ...