LVS 负载均衡

1.Linux Virtual Server
2.章文嵩博士主导的开源的负载均衡项目
3.LVS(ipvs)已被集成到Linux内核中

LVS官网地址:传送门

lvs fullnat 安装配置 lvs配置详解_linux

为什么要使用 LVS + Nginx

1.LVS基于四层,工作效率高
2.单个 Nginx 承受不了压力,需要集群
3.LVS 充当 Nginx 集群的调度者
4.Nginx 接受请求来回,LVS 可以只接受不响应

  • 当浏览器发送请求时通过nginx进行分配到对应的服务器,当有结果返回也会通过nginx返回给浏览器

lvs fullnat 安装配置 lvs配置详解_nginx_02

  • 当浏览器发送请求时通过LVS进行分配到对应的服务器,当有结果返回不会通过LVS返回给浏览器而是他们通过服务器集群直接返回给浏览器
  • LVS的负载均衡也是通过虚拟IP来实现的和之前介绍的keepalived一致

LVS的三种模式

1.NAT模式:浏览器请求通过虚拟IP发送给LVS进行处理,响应数据也是通过LVS返回的(LVS的IP会暴露在公网,服务器的IP是在私网)

lvs fullnat 安装配置 lvs配置详解_服务器_03


2.TUN模式:浏览器发送的请求还是通过虚拟IP发送个LVS发送给对应的服务器,之后端服务器响应的数据是集群中的服务器会直接返回给浏览器(前提:每个节点都需要配置一个网卡,也会将我们后台服务器的IP暴露在公网)

lvs fullnat 安装配置 lvs配置详解_IP_04


3.DR模式:浏览器发送的请求还是通过虚拟IP发送个LVS发送给对应的服务器,之后端服务器的响应的数据是通过统一的路由返回给浏览器,避免我们的后端服务器IP暴露在公网IP上,路由也有一个对应的虚拟IP

lvs fullnat 安装配置 lvs配置详解_linux_05

搭建LVS - DR模式 - 配置LVS节点与ipvsadm

前期准备

1.服务器与ip规划

  • LVS - 1台

VIP(虚拟IP):192.168.1.189
DIP(转发IP/内网IP):192.168.1.61

  • Nginx - 台(RealServer)

RIP(真实IP/内网IP):192.168.1.88
RIP(真实IP/内网IP):192.168.1.87

2.所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突:

systemctl stop NetworkManager
systemctl disable NetworkManager

创建子接口

1.进入到网卡配置目录,找到对应的enp0s3

cd /etc/sysconfig/network-scripts/

lvs fullnat 安装配置 lvs配置详解_linux_06

2.拷贝并且创建子接口


cp ifcfg-enp0s3 ifcfg-enp0s3:1

  • 注:数字1为别名,可以任取其他数字都可以

3.修改子接口配置

vi ifcfg-enp0s3

4.配置如下

lvs fullnat 安装配置 lvs配置详解_服务器_07

  • 注:配置中的 192.168.1.89 就是咱们的vip,是提供给外网用户访问IP地址,道理和nginx+keepalived讲的vip是一样的

5.重启网络服务,或者重启Linux(使配置文件生效):

service network restart

lvs fullnat 安装配置 lvs配置详解_IP_08

6.重启成功后, ip addr 查看一下,会发现多了一个IP,也就是虚拟IP(vip)

lvs fullnat 安装配置 lvs配置详解_IP_09

安装ipvsadm

现如今的centos都是集成了LVS,所以 ipvs 是自带的,相当于苹果手机自带ios,我们只需要 ipvsadm 即可(ipvsadmm是管理集群的工具,通过ipvs可以管理集群,查看集群操作),命令如下

yum install ipvsadm

安装成功后,可以检测下:

ipvsadm -Ln

lvs fullnat 安装配置 lvs配置详解_nginx_10