LVS 负载均衡
1.Linux Virtual Server
2.章文嵩博士主导的开源的负载均衡项目
3.LVS(ipvs)已被集成到Linux内核中
LVS官网地址:传送门
为什么要使用 LVS + Nginx
1.LVS基于四层,工作效率高
2.单个 Nginx 承受不了压力,需要集群
3.LVS 充当 Nginx 集群的调度者
4.Nginx 接受请求来回,LVS 可以只接受不响应
- 当浏览器发送请求时通过nginx进行分配到对应的服务器,当有结果返回也会通过nginx返回给浏览器
- 当浏览器发送请求时通过LVS进行分配到对应的服务器,当有结果返回不会通过LVS返回给浏览器而是他们通过服务器集群直接返回给浏览器
- LVS的负载均衡也是通过虚拟IP来实现的和之前介绍的keepalived一致
LVS的三种模式
1.NAT模式:浏览器请求通过虚拟IP发送给LVS进行处理,响应数据也是通过LVS返回的(LVS的IP会暴露在公网,服务器的IP是在私网)
2.TUN模式:浏览器发送的请求还是通过虚拟IP发送个LVS发送给对应的服务器,之后端服务器响应的数据是集群中的服务器会直接返回给浏览器(前提:每个节点都需要配置一个网卡,也会将我们后台服务器的IP暴露在公网)
3.DR模式:浏览器发送的请求还是通过虚拟IP发送个LVS发送给对应的服务器,之后端服务器的响应的数据是通过统一的路由返回给浏览器,避免我们的后端服务器IP暴露在公网IP上,路由也有一个对应的虚拟IP
搭建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/
2.拷贝并且创建子接口
cp ifcfg-enp0s3 ifcfg-enp0s3:1
- 注:
数字1
为别名,可以任取其他数字都可以
3.修改子接口配置
vi ifcfg-enp0s3
4.配置如下
- 注:配置中的 192.168.1.89 就是咱们的vip,是提供给外网用户访问IP地址,道理和nginx+keepalived讲的vip是一样的
5.重启网络服务,或者重启Linux(使配置文件生效):
service network restart
6.重启成功后, ip addr 查看一下,会发现多了一个IP,也就是虚拟IP(vip)
安装ipvsadm
现如今的centos都是集成了LVS,所以 ipvs 是自带的,相当于苹果手机自带ios,我们只需要 ipvsadm 即可(ipvsadmm是管理集群的工具,通过ipvs可以管理集群,查看集群操作),命令如下
yum install ipvsadm
安装成功后,可以检测下:
ipvsadm -Ln