常识指南
霓虹主题四 · 更硬核的阅读氛围

负载均衡主备模式设置:让服务更稳定

发布时间:2026-01-10 04:30:30 阅读:273 次

公司网站突然访问不了,客服电话立刻响个不停。排查一圈才发现,是后台服务器挂了,而且没有及时切换备用方案。这种情况其实在很多中小型企业里都发生过。为了避免单点故障,负载均衡的主备模式就成了关键配置。

什么是主备模式

主备模式,简单说就是“一个干活,一个待命”。正常情况下,主服务器处理所有请求,备用服务器不对外服务,但它一直盯着主服务器的状态。一旦主服务器宕机,备用服务器马上顶上,接替工作,整个过程对用户几乎是无感的。

这就像小区的供水系统:平时由A水泵供水,B泵停着;如果A泵坏了,系统自动切换到B泵,居民家里的水不会断。

常见场景:Nginx + Keepalived 实现主备

在实际部署中,Nginx 做反向代理,Keepalived 负责监控和故障转移,是常见的组合。两台服务器分别安装 Nginx 和 Keepalived,其中一台设为主(MASTER),另一台设为备(BACKUP)。

Keepalived 通过 VRRP 协议通信,虚拟出一个公用的 IP 地址(VIP)。外部访问都指向这个 VIP,而 VIP 实际绑定在当前的主服务器上。

配置示例

以下是一个 Keepalived 的主节点配置片段:

global_defs {<br>    notification_email {<br>        admin@example.com<br>    }<br>    router_id LVS_DEVEL<br>}

vrrp_instance VI_1 {<br>    state MASTER<br>    interface eth0<br>    virtual_router_id 51<br>    priority 100<br>    advert_int 1<br>    authentication {<br>        auth_type PASS<br>        auth_pass 123456<br>    }<br>    virtual_ipaddress {<br>        192.168.1.100<br>    }<br>}

备用节点只需将 state 改为 BACKUP,priority 设得比主低(比如 90)即可。当主服务器网络中断或服务崩溃,Keepalived 会检测失败,在几秒内将 VIP 漂移到备用机器。

健康检查不能少

主备切换的核心在于“判断是否真的挂了”。可以在 Keepalived 配置中加入对 Nginx 的检查脚本:

vrrp_script chk_nginx {<br>    script "/usr/local/bin/check_nginx.sh"<br>    interval 2<br>    weight -20<br>}

脚本内容可以很简单:尝试访问本地 Nginx,如果连续几次失败,就认为服务异常,触发降权,促使切换。

测试时注意别误操作

上线前一定要在测试环境验证。可以手动停止主服务器的 Nginx 或 Keepalived 服务,观察 VIP 是否自动漂移到备用节点。使用 ip addr show 查看 IP 绑定情况,用 ping 测试连通性。

曾经有团队在生产环境做切换测试,忘了改配置,结果主备同时抢 VIP,导致网络冲突,服务反而全断了。所以修改配置后记得重启服务,并确认只有一台持有 VIP。

适用场景与局限

主备模式适合预算有限、业务量不大的系统。它解决了单点故障问题,但备用服务器大部分时间闲置,资源利用率不高。如果并发高,建议考虑双主模式或多活架构。

另外,主备切换需要时间,通常在几秒内,这段时间内新连接会失败。对于金融类业务,可能还需要结合应用层的重试机制来弥补。