LVS 深度解析:定义、核心功能与实操实验(含生产级配置)
LVS(Linux Virtual Server,Linux 虚拟服务器)是由章文嵩博士主导开发的 内核级负载均衡器,集成于 Linux 内核(2.4.x 及以上版本),核心定位是为后端集群提供高性能、高可用的流量分发能力,是企业级高并发架构(如电商、金融系统)的核心组件之一。
一、LVS 是什么?(负载均衡器的内核级实现)
1. 核心本质
- 内核态工作:LVS 直接在 Linux 内核的 TCP/IP 协议栈中处理请求转发,无需用户态与内核态切换(区别于 Nginx、HAProxy 等应用层负载均衡),性能损耗极低,支持 10 万 + 并发连接。
- 负载均衡器(LB)角色:作为前端入口,接收客户端请求,通过预设算法分发到后端多台 Real Server(真实应用服务器),实现 "请求分流、压力均衡"。
- 无应用依赖:仅转发 TCP/UDP 层请求,不解析应用层数据(如 HTTP、MySQL 协议),兼容性极强,可适配任意应用服务(Web、数据库、缓存等)。
2. 核心组件

二、LVS 干什么用?(核心价值与应用场景)
1. 核心功能
- 流量分流与负载均衡:将高并发请求均匀分发到多台 RS,避免单台服务器过载,提升系统吞吐量(如双 11 电商流量峰值分流)。
- 高可用(HA)保障:通过健康检查机制实时监测 RS 状态,若某台 RS 故障,自动将请求转发到其他正常节点,避免单点故障。
- 隐藏后端节点:客户端仅能看到 DS 的外网 IP(VIP),无法直接访问 RS,提升后端集群的安全性。
- 扩展性支持:无需修改前端配置,新增 / 下线 RS 即可扩展 / 缩减集群容量,实现弹性伸缩。
2. 适用场景
- 高并发、高性能需求:如日均 PV 千万级的 Web 网站、高并发 API 接口(优于 Nginx 的性能,适合底层流量分发)。
- 多服务统一入口:为后端异构服务(Web、数据库、缓存)提供统一负载均衡入口,简化架构。
- 生产环境高可用架构:搭配 Keepalived 实现 DS 双机热备(避免 LVS 本身单点故障),构建 "LVS+Keepalived+RS 集群" 的高可用架构。
三、LVS 怎么用?(实操实验:NAT 模式部署)
实验目标
搭建 "LVS(DS)+ 2 台 Tomcat(RS)" 的负载均衡架构,实现客户端请求通过 LVS 分发到后端两台 Tomcat,验证分流效果。
实验环境(推荐 VMware 虚拟机,3 台 CentOS 7 主机)

实验步骤(分角色配置,全程命令行实操)
阶段 1:环境准备(所有主机)
- 关闭防火墙和 SELinux(实验环境简化,生产环境需按需开放端口):

- 保证所有主机可以互通:
- 客户端能 ping 通 DS 外网 IP(192.168.1.100)。
- DS 能 ping 通两台 RS 的内网 IP(10.0.0.10、10.0.0.11)。
- RS 能 ping 通 DS 内网 IP(10.0.0.1)。
阶段 2:配置后端 RS(两台 RS 操作一致)
目标:在 RS 上部署 Tomcat 服务,并配置网关指向 DS(确保响应能通过 DS 返回客户端)。
1.安装 JDK 和 Tomcat(参考之前 Tomcat 部署步骤):

2.修改 Tomcat 默认页面(便于区分两台 RS):

3.启动 Tomcat 并验证:

4.配置 RS 网关指向 DS 内网 IP(关键!确保响应路由正确):

阶段 3:配置 LVS 服务器(DS)
目标:安装 IPVS 工具,配置 LVS-NAT 模式,设置调度算法和后端 RS。
1.安装 IPVS 管理工具(ipvsadm):

2.开启 DS 的 IP 转发功能(NAT 模式必需,实现数据包转发):

3.配置 LVS 规则(NAT 模式,轮询算法):

4.查看 LVS 规则(验证配置):

阶段 4:测试验证(客户端)
目标:访问 DS 外网 IP,验证请求是否被 LVS 分发到两台 RS。
1.客户端打开浏览器或使用 curl 命令访问:

2.预期结果:
- 第一次返回:
<h1>RS1 - 10.0.0.10</h1> - 第二次返回:
<h1>RS2 - 10.0.0.11</h1> - 交替出现(轮询算法),说明 LVS 负载均衡生效!
3.查看 LVS 连接状态(DS 上执行):

四、关键配置解释(实验核心参数)
1. LVS 规则参数详解

2. 调度算法选择(实验用 rr,生产按需调整)

3. LVS 三种模式对比(实验用 NAT,生产按需选择)

五、生产环境优化建议
- DS 高可用(避免单点故障):搭配 Keepalived 实现 DS 双机热备,配置虚拟 VIP(如 192.168.1.200),客户端访问 VIP,若主 DS 故障,备 DS 自动接管。
- 健康检查:LVS 默认无健康检查(仅转发请求,不检测 RS 状态),需结合 Keepalived 或脚本实现 RS 健康检查,故障 RS 自动下线,恢复后自动上线。
- 调度算法选择 :生产环境优先使用
wlc(加权最少连接),根据 RS 性能配置权重(如高配 RS 权重设为 2,低配设为 1)。 - 日志监控:开启 LVS 日志(需配置内核参数),结合 Zabbix、Prometheus 监控 DS 负载、RS 连接数,及时排查问题。
- 安全加固:DS 仅开放必要端口(如 80、443),RS 仅允许 DS 内网 IP 访问,避免直接暴露在公网。