如何在Linux上配置网络负载均衡

来源:编程网作者:阿亮头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何在Linux上配置网络负载均衡》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置网络负载均衡》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中配置网络负载均衡是提升后端服务稳定性和并发处理能力的重要手段,通过将客户端请求分发到多台后端真实服务器,避免单节点过载导致服务不可用。目前Linux生态中最常用的网络负载均衡方案是LVS结合keepalived实现,LVS负责流量转发,keepalived负责高可用和规则管理。

如何在Linux上配置网络负载均衡

环境准备

本次配置需要三台Linux服务器,一台作为LVS负载均衡器,两台作为后端真实服务器,所有服务器均关闭防火墙和SELinux,保证网络互通。首先需要安装相关的工具包,负载均衡器上安装ipvsadm和keepalived,后端服务器安装httpd用于测试。

安装依赖工具

在负载均衡器节点执行以下命令安装所需组件:

# 安装ipvsadm管理工具
yum install -y ipvsadm
# 安装keepalived高可用组件
yum install -y keepalived

在后端两台真实服务器上安装httpd服务并启动:

yum install -y httpd
systemctl start httpd
systemctl enable httpd
# 创建测试页面,两台服务器内容区分开便于验证负载效果
echo "Real Server 1" > /var/www/html/index.html
echo "Real Server 2" > /var/www/html/index.html

配置keepalived实现负载均衡

keepalived的配置文件默认路径为/etc/keepalived/keepalived.conf,我们需要修改该文件定义负载均衡规则。本次采用DR模式,这是LVS中最常用的模式,性能最高,请求直接由真实服务器返回给客户端。

负载均衡器配置

编辑keepalived配置文件,内容如下:

global_defs {
   router_id LVS_DEMO  # 路由标识,同一网络内唯一
}

vrrp_instance VI_1 {
    state MASTER  # 主节点标识,备节点改为BACKUP
    interface eth0  # 绑定的网卡名称,根据实际网卡调整
    virtual_router_id 51  # 虚拟路由ID,主备节点需一致
    priority 100  # 优先级,主节点高于备节点
    advert_int 1  # 心跳检查间隔
    authentication {
        auth_type PASS
        auth_pass 1111  # 认证密码,主备节点需一致
    }
    virtual_ipaddress {
        192.168.0.100  # 虚拟VIP地址,客户端访问的地址
    }
}

virtual_server 192.168.0.100 80 {  # 虚拟服务,VIP加端口
    delay_loop 6  # 健康检查间隔
    lb_algo rr  # 负载均衡算法,rr为轮询
    lb_kind DR  # 负载均衡模式,DR模式
    persistence_timeout 0  # 会话保持时间,0表示不保持
    protocol TCP  # 协议类型

    real_server 192.168.0.11 80 {  # 第一台真实服务器
        weight 1  # 权重
        TCP_CHECK {  # TCP健康检查
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.0.12 80 {  # 第二台真实服务器
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

配置完成后启动keepalived服务:

systemctl start keepalived
systemctl enable keepalived

后端真实服务器配置

DR模式下,后端服务器需要绑定VIP到回环接口,并且关闭ARP响应,避免IP冲突。在两台真实服务器上执行以下脚本:

#!/bin/bash
VIP=192.168.0.100
# 绑定VIP到回环接口
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
# 添加路由
route add -host $VIP dev lo:0
# 关闭ARP响应相关参数
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

可以将脚本添加到开机启动项,避免重启后配置失效。

验证负载均衡效果

在客户端机器上多次访问虚拟VIP地址,查看返回的内容是否交替出现两台真实服务器的测试页面:

curl 192.168.0.100
# 第一次返回Real Server 1
# 第二次返回Real Server 2
# 以此类推,说明负载均衡配置生效

也可以查看负载均衡器的转发规则,确认规则已经加载:

ipvsadm -Ln
# 可以看到虚拟服务和两台真实服务器的配置信息

常见负载均衡模式对比

LVS支持多种负载均衡模式,不同模式的适用场景不同,具体差异如下:

模式名称性能配置复杂度适用场景
DR模式最高中等后端服务器和负载均衡器同网段,对性能要求高的场景
NAT模式中等后端服务器和负载均衡器不同网段,配置简单的场景
TUN模式较高跨地域的负载均衡场景

注意事项

  • 如果是生产环境,建议配置两台负载均衡器,一台主一台备,避免单点故障,备节点的keepalived配置只需修改state为BACKUP,priority值低于主节点即可。
  • 负载均衡算法除了轮询rr,还有加权轮询wrr、最小连接lc等,可以根据后端服务器性能选择合适的算法。
  • 后端服务器健康检查除了TCP_CHECK,还支持HTTP_GET等方式,可以更准确地检测服务可用性。

Linux网络负载均衡LVSkeepalivedipvsadm修改时间:2026-06-18 12:03:42

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。