当前位置: 首页 > news >正文

LVS-NAT + 轮询(rr)+ Keepalived 单 VIP 高可用

1. LVS 是什么?

四层负载均衡(只认 IP + 端口)把用户请求 → 分给多个后端服务器(RS)

2. NAT 模式是什么?

调度器(LVS) 负责转发请求 + 改写回包

后端(RS)网关必须指向 LVS

3. VIP 是什么?(最重要)

VIP = Virtual IP(虚拟 IP)

不是自动产生,是自己手动设定的!

作用:对外统一入口

用户只访问 VIP,不知道后面有多少台服务器

Keepalived 负责:VIP 在主 LVS 挂了时,自动飘到备机

第一步:规划固定 IP

机器角色(一共 4 台) 这里全部使用假设IP

  1. LVS Master(主调度器)
    • 真实 IP:192.168.1.10
  2. LVS Backup(备调度器)
    • 真实 IP:192.168.1.11
  3. Real Server 1(后端 web1)
    • IP:192.168.1.20
  4. Real Server 2(后端 web2)
    • IP:192.168.1.30
  5. 统一 VIP(你自己设定)

    VIP:192.168.1.100(自己设,随便选同网段没被用的 IP)

第二步:LVS-NAT 模式手动配置

在 LVS Master(192.168.1.10)执行

1. 安装 ipvsadm

yum install -y ipvsadm

2. 开启 IP 转发(NAT 必须开)

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf sysctl -p

3. 配置 LVS 规则(轮询 rr + NAT 模式

# 清空旧规则 ipvsadm -C # 创建虚拟服务(VIP:80,算法=轮询 rr) ipvsadm -A -t 192.168.1.100:80 -s rr # 添加后端RS1,-m = NAT模式 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.20:80 -m # 添加后端RS2 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.30:80 -m

4. 查看规则

ipvsadm -Ln

会看到:

  • VIP:192.168.1.100:80
  • 算法:rr
  • 模式:NAT
  • 两个后端

第三步:Real Server 必须配置网关

在 RS1、RS2 都执行:

# 网关指向 LVS 的真实IP route add default gw 192.168.1.10

为什么?

因为NAT 模式回包必须走 LVS,不然用户收不到响应。


第四步:Keepalived 让 VIP 飘起来

Keepalived 作用:

  1. 自动管理 VIP
  2. 自动配置 LVS 规则(不用手动 ipvsadm)
  3. 主挂了 → VIP 自动飘到备机
  4. 自动健康检查后端 RS

安装(主备都装)

yum install -y keepalived

第五步:Master 配置

文件:/etc/keepalived/keepalived.conf

global_defs { router_id LVS_MASTER } vrrp_instance VI_1 { state MASTER interface eth33 # 自己的网卡名 virtual_router_id 60 priority 100 # 主高 advert_int 1 authentication { auth_type PASS auth_pass 123456 } # 这里就是 VIP!自己设置的! virtual_ipaddress { 192.168.1.100/24 } } # LVS NAT + 轮询 virtual_server 192.168.1.100 80 { delay_loop 3 lb_algo rr # 轮询算法 lb_kind NAT # NAT模式 protocol TCP real_server 192.168.1.20 80 { weight 1 TCP_CHECK { connect_timeout 3 } } real_server 192.168.1.30 80 { weight 1 TCP_CHECK { connect_timeout 3 } } }

第六步:Backup 配置

global_defs { router_id LVS_BACKUP } vrrp_instance VI_1 { state BACKUP # 备机 interface eth33 virtual_router_id 60 priority 90 # 比主低 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100/24 } } # virtual_server 部分 和主完全一样!

第七步:启动

systemctl start keepalived

结果:

  • VIP 192.168.1.100 自动飘在 Master
  • ip add可看到
  • ipvsadm -Ln出现 LVS 规则
  • 用户访问192.168.1.100:80→ 轮询访问 RS1、RS2
  • Master 挂掉 → VIP 自动飘到 Backup
http://www.jsqmd.com/news/578618/

相关文章:

  • 对于多轮对话中的对话策略可解释性,OpenClaw 的决策树可视化?
  • Functional Vlpp:嵌入式C++轻量函数对象库
  • 自学嵌入式第五天
  • 2026 年你真正需要的 10 个 Claude 插件及其深度解析
  • 2026苏州非标机械设计培训机构测评:综合推荐与选型指南 - 博客湾
  • 5步实现多模态RAG应用:解决大模型幻觉核心痛点
  • OpenClaw 的模型量化中,是否支持对称量化和非对称量化的动态切换?
  • 引爆企业降本增效的AI革命!生成式AI应用专家亲授,从字节跳动到华为的数字化转型实战秘籍!
  • 【Unity】进阶镜头模糊技术:实现多层次UI与场景的精准虚化效果
  • Windows Cleaner:解决C盘爆红问题的终极免费方案
  • 基于Cadence 617的带隙基准电压源设计:从理论推导到仿真验证
  • 工业通信调试效率提升:Modbus工具解决工业自动化协议测试难题
  • JAVA语法,接口和抽象类应该如何抉择
  • Goldfish4Tech空气泵驱动库:嵌入式直流泵安全控制方案
  • 避开MCS-51串口编程的那些坑:从4800波特率计算到中断服务程序编写实战
  • 永磁同步电机直接转矩控制Simulink仿真模型(含四种模型及原理解析)
  • SSM+JSP奥林匹克竞赛交流平台源码+论文
  • 《高效赋能!AI助手高效赋能法律研究智能化,AI应用架构师分析》
  • 基于HT32F1656的高校公寓远程能源监控系统设计
  • ASMR音频资源管理工具:高效构建个人音频库
  • SoftSPIB:支持任意位宽的软件模拟SPI库
  • 嵌入式C高级编程技巧:回调函数与宏定义实战
  • RC滤波器设计实战:从基础到高阶应用
  • ILI9486驱动库设计:嵌入式TFT屏显示与触摸双模优化
  • Python+Hadoop电影数据分析及可视化系统源码+论文
  • 在对话中生成代码时,OpenClaw 的代码风格一致性如何保证?
  • sh c f jv u c j f vj v v
  • STM32外设驱动开发:从寄存器到HAL库实战
  • 嵌入式系统接口技术详解与应用实践
  • 开源工具DLSS Swapper:提升游戏帧率的智能版本管理方案