1、负载均衡典型应用场景,外网、内网、私网公共服务。

典型场景:

(1)用户通过公网访问数据中心的ftp、web、https服务器。

(2) 在数据中心内部东西向访问其他服务时,例如,访问其他虚拟机、DNS等公共服务。

(3) 通过专线或者ipsec vpn访问数据中心内部服务时。

2、常见的负载均衡的技术

硬件实现(2/3层):链路聚合、等价路由。

软件实现(4/7层):LVS、nginx/haproxy、

  DNS负载均衡:公网智能分配目的ip GSLB、内网DNS解析公共服务。

3、LVS的3种模式:NAT、DR、TUNNEL。

NAT: 特点,流量来回路径一致,都要经过负载均衡器,通过DNAT转换,将目的ip修改为后端VM的ip,目的MAC修改为后端VM的MAC地址。

缺点:当回程流量很大时,负载均衡器本身容易成为瓶颈。改进方案,使用DR模式。

DR:特点,回程路径直接回到客户端。不需要NAT,后端服务器都需要配置环口ip为VIP,并且配置不响应VIP的arp请求。同时要求LVS分发器和后端VM在相同网段内,这个模式是主流。

     缺点:要求后端VM和LVS分发头在相同网段。改进方案:LVS + haproxy.

隧道模式:特点,负载均衡器和后端虚拟机不是直接相连,通过隧道打通,要求双方都要支持IPinIP协议。

LVS + haproxy: 怎么解决跨网问题?

http://blog.csdn.net/big1980/article/details/21932103

4、nginx和haproxy对比。

一般情况下,在日访问量PV在3000万以下时,使用简单的DNS轮询配合监控,基本可以满足业务需求。

超过3000万时,使用nginx作为反向代理。如果可靠性要求不高,使用单台nginx。否则,可以配置多台nginx进行负载分担。

在3000万到1亿时,可以使用HAProxy+ keepalived --> nginx --> web 服务器集群。Haproxy负责TCP负载均衡,Nginx负责7层调度,nginx可以配置多台进行负载分担。

超过1亿时,采用LVS+DR + Keepalived --> nginx --> web服务器集群。LVS-DR负责TCP负载均衡,nginx负责7层调度。此时可以考虑使用商业的netscaler替换LVS-DR。

5、单点故障问题。

后端服务器可以有多个,消除了单点故障问题。可是负载均衡器本身是单节点,如何消除单点故障?

解决方案有两种,双活和主备。

双活:两个不同服务器上的LVS之间配置会话同步,互相同步,达到双活效果。上游通过交换机或者防火墙的ECMP进行等价分发。

主备:结合keepalive协议,实现主备备份效果。通过结合不同层次,LVS + keepalive,  nginx + keepalive, haproxy + keepalive

6、对后端服务器的健康检查和转发权重设置。

LVS、nginx、haproxy都支持健康检查。

7、会话保持

通过源ip达到会话保持的效果,即将客户端分发给某个后端服务器后,后续该客户端的流量都指向相同的后端服务器,避免会话不存在而导致的生效问题。

也就是说,通过源ip实现会话保持。

会话保持的方法,还有http_cookie和app_cookie

7、证书卸载。

客户端通过ssh或者https访问ssh服务器端,或者https访问web服务器时,证书如何识别和卸载?在nginx的配置项中可以指定证书文件,从而进行卸载。

8、负载分担的后端服务器的选择。

三种算法:轮询算法、最少连接算法、源ip算法。

9、健康检查的模式

ping、https、tcp、http

10、获取访问者的源ip

负载均衡器将流量转发给后端服务器时,会修改报文的源ip(为何?),那么后端服务器处理时,如何分析出报文原始的源ip.

对于4层负载均衡,可以选择DR模式,使源ip地址直接在后端的服务器可见。

对于7层负载均衡,使用http头中的 http header: X-forward for来获得原始ip.

11. 网站的总入口的反向代理,一般使用nginx,因为nginx可以同时作为web服务器和负载均衡器。

12. 4层负载均衡时,当客户端和LVS之间建立TCP连接时,LVS会同步和某个后端服务器建立TCP连接。

7层负载均衡时,当客户端和LVS之间建立TCP连接时,LVS会先和客户端建立TCP连接,等到客户端有流量发送时,负载均衡器再和后端服务器建立TCP连接。

13. 转发性能角度:

4层负载均衡不关心报文内容,所以负载均衡性能高。

7层负载均衡需要查看Http头中的动作、URL、请求的源主机信息等信息,所以,需要深入查看报文内容,所以,转发性能低。但是,可以做深度的精细化控制。

14. GSLB有哪些实现方法:

有3种,基于DNS解析、基于重定向、基于路由协议。

基于DNS解析:DNS在多个ip间轮询(相同域名),达到负载均衡的效果。

基于重定向: 负载均衡器根据请求的内容(ip地址、端口号、或者URL等)给客户端返回一个实际处理业务的服务器地址。利用的是Http的302重定向功能。

基于路由协议:

Linux LB--负载均衡和高可靠的更多相关文章

  1. 强大核心功能矩阵,详解腾讯云负载均衡CLB高可靠高性能背后架构

    1 前言 腾讯云负载均衡(Cloud LoadBalancer),简称CLB, 负载均衡通过设置虚拟服务地址(VIP)将来自客户端的请求按照指定方式分发到其关联的多台后端云服务器,服务器将请求的响应返 ...

  2. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  3. Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)

    当下Linux运维技术越来越受到企业的关注和追捧, 在某些企业, 尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案.那么如何实施Llinux集群架构,才能既有效 ...

  4. CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR);

    目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中. ...

  5. LB负载均衡之Nginx-Proxy

    LB负载均衡之Nginx-Proxy Nginx 反向代理及负载均衡引用实战 Nginx反向代理的原理优点:      Nginx proxy(反向代理)作为Nginx的重要功能,使用nginx pr ...

  6. Keepalived+LVS+Nginx负载均衡之高可用

    Keepalived+LVS+Nginx负载均衡之高可用 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常 ...

  7. nginx负载均衡+keepalived高可用

    nginx负载均衡+keepalived高可用 环境准备 192.168.88.111:nginx + keepalived   MASTER 192.168.88.112:nginx + keepa ...

  8. net core 实战之 redis 负载均衡和"高可用"实现

    net core 实战之 redis 负载均衡和"高可用"实现 1.概述 分布式系统缓存已经变得不可或缺,本文主要阐述如何实现redis主从复制集群的负载均衡,以及 redis的& ...

  9. HAProxy+keepalived+MySQL 实现MHA中slave集群负载均衡的高可用

    HAProxy+keepalived+MySQL实现MHA中slave集群的负载均衡的高可用 Ip地址划分: 240    mysql_b2 242    mysql_b1 247    haprox ...

随机推荐

  1. Fetch的使用及兼容ie的处理

    Fetch 作为一个与时俱进的前端,Fetch当然应该有所了解和涉猎.如果你没有听说过Fetch,那么ajax应该不陌生吧.Fetch相当于是一个新版本的Ajax,虽然现在我们常常使用的仍是ajax, ...

  2. 你可能不知道的github语法——图标

    概述 逛github,看到别人的仓库的description里面有各种炫丽的图标,不禁有点好奇,于是去查了下怎么写真的被我查到了,记录在下面,供以后开发时参考,相信对其他人也有用. 图标 可以先看看g ...

  3. Java学习笔记51(综合项目:家庭记账系统)

    javaEE的开发模式 1.什么是模式 模式在开发过程中总结出的“套路”,总结出的一套约定俗成的设计模式 2.javaEE经历的模式 model1模式: 技术组成:jsp+javaBean model ...

  4. Win10下音频设备无法播放音乐问题定位

    最近一直在调试音频设备,由于音频设备需要在不同的采样率下面转换,所以会经常导致我的win10无法播放和录音. 刚开始在网上搜了相关的知识,但是一直没找到有效的解决方案.后来,无奈之下,使用了微软的声音 ...

  5. Mac下搭建react及bable

    1.安装node 下载: https://nodejs.org/en/download/ 测试--->返回版本号即为安装成功: $ node -v $ npm -v 2.安装全局create-r ...

  6. cannot download, /home/azhukov/go is a GOROOT, not a GOPATH

    问题详情: go环境安装好后,运行go代码也没有问题 下载govendor包的时候提示: cannot download, /home/azhukov/go is a GOROOT, not a GO ...

  7. 《ASP.NET Core跨平台开发从入门到实战》Web API自定义格式化protobuf

    <ASP.NET Core跨平台开发从入门到实战>样章节 Web API自定义格式化protobuf. 样章 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于 ...

  8. salesforce lightning零基础学习(六)Lightning Data Service(LDS)

    本篇可参看:https://trailhead.salesforce.com/modules/lightning_data_service Lightning中针对object的detail页面,一个 ...

  9. docker compose示例

    version: ' services: game-server: image: /tomcat: container_name: 'game-server' ports: - '8019:8019' ...

  10. #14 Python模块

    前言 前面的文章中,有许多地方都用到了Python的模块,这个到底是个什么神奇的东西呢?让我们来一起盘它! 一.什么是模块 在前几节中,我们已经接触了一些模块:math.random.time等,它们 ...