LVS(Linux Virtual Server)是一个基于四层的负载均衡调度器。

为什么要使用 LVS + Nginx?

在这里插入图片描述
LVS的 DR 模式:
在这里插入图片描述

由上图可以看出,LVS 和 Nginx 很像,但LVS基于四层负载均衡,它无需处理请求的报文,它可以只接收请求而可以不响应请求,所以它工作效率是 Nginx 的几十倍。
当数据量太大,大到单个 Nginx 承受不了该压力,使得 Nginx 都需要配置集群,那么现在细想一下,该由谁来充当Nginx集群的调度者,总不能还是交给 Nginx 来处理调度吧,而这里就可以使用到LVS,从而支持更高的并发!!!

LVS 的工作原理是通过其的核心模块 ipvs 实现的,ipvs 可以产生出一个虚拟IP,这与 Keepalived 类似,用户服务会通过这个虚拟IP访问,到达负载LVS负载均衡调度器,再由LVS挑选出实际的Nginx服务器进行响应。

LVS 的三种模式

LVS 的三种模式主要关注点就是:响应方式的不同

  • NAT 模式如下图,该模式的工作原理就如Nginx几乎一致了,此时LVS接受请求后还需要响应数据,还要注意如图显示,real server 是处于内网之中,外部无法直接访问。
    在这里插入图片描述
  • TUN 模式如下图,硬性要求所有 Real Server 必须要配备网卡,通过网卡建立通信隧道,所有的用户请求都由各自的 Real Server 响应,大大地减低了 LVS 的压力从而增大并发,不过这样也有一个缺点,Real Server 因为有了网卡,对应也就会暴露在公网中
    在这里插入图片描述
  • DR 模式如下图,直接路由模式,real server 的响应会统一地通过一个路由中转、构建一个虚拟IP进行数据返回给用户(此时构建的虚拟IP与请求的虚拟IP应该一致),对比 TUN 模式,DR 模式下 real server 就不再暴露在公网中
    在这里插入图片描述
Logo

更多推荐