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. 带你入门Python爬虫,8个常用爬虫技巧盘点

    python作为一门高级编程语言,它的定位是优雅.明确和简单. 我学用python差不多一年时间了, 用得最多的还是各类爬虫脚本, 写过抓代理本机验证的脚本.写过论坛中自动登录自动发贴的脚本 写过自动 ...

  2. Dispatch Queue 之 dispatch_async

     可以看到,在queue里的任务,不仅仅是一个函数,也可以是一个其他的queue. 下面是一个例子.  全局队列的处理 一般一个全局队列有多个线程,这些个线程会遍历并处理链表里的任务. 对于全局队 ...

  3. .NET手记-Autofac进阶(注册的概念 Registering Concepts)

    通过创建ContainerBuilder并配置暴露的service(接口或者类型)来使用Autofac注册我们的组件. 组件(Components) 可以通过反射, 对象实例,或者lambda表达式来 ...

  4. laravel5实现第三方登录(微信)

    背景 最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4. 实现过程以微信网页版第三方登录,其他于此类似,在此不做重复. 准备工作 网站应用微信登录是基于OAu ...

  5. vue项目打包上线时的配置操作

    vue的图片路径,和背景图片路径打包后错误解决 2017-12-11 16:00 by muamaker, 7037 阅读, 0 评论, 收藏, 编辑 最近在研究vue,老实的按照官网提供的,搭建的了 ...

  6. Java内部类持有外部类的引用详细分析与解决方案

    在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收. GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命 ...

  7. python zip压缩文件 并移动到指定目录

    需要引入的3个包: import os import shutil import zipfile 1. # 创建zip文件对象your_zip_file_obj = zipfile.ZipFile(' ...

  8. SVN服务器搭建实录

    第一章  SVN介绍 1.1 什么是SVN(subversion) SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个固态的跨平台的开源的版本控制系统.SVN版本管理工具管 ...

  9. 批量去除文件的BOM头

    <?php class KillBom{ //定义扩展名 public static $m_ext = ['txt','php','js','css']; /** * 传入一个任意文件,自动区分 ...

  10. android_安装包_NoClassDefFoundError

    说说这个问题出现的地方吧: 能够成功的打包安装包,但是在安装包安装后,准备运行时出现了这个问题. 查看了这篇文章,讲得有理有据,并没有解决我的问题. 通过谷歌查找到这个stackoverflow,解决 ...