如何通过宝塔实现Failover自动切换?

2025.5.28 杂七杂八 1208

如何通过宝塔实现Failover自动切换? 杂七杂八-第1张

本文详细介绍如何利用宝塔面板搭建高可用服务器集群,通过Nginx负载均衡和Keepalived实现故障自动转移(Failover),确保服务持续在线。包含配置步骤、脚本示例及常见问题解决方案。

一、什么是Failover自动切换?

Failover(故障转移)是当主服务器发生故障时,系统自动将流量切换到备用服务器的过程。通过宝塔面板配合负载均衡工具,可以低成本实现企业级高可用架构。

二、准备工作

  1. 至少两台安装宝塔面板的服务器(建议相同配置)
  2. 已解析的域名(如example.com)
  3. SSH root权限

三、配置步骤

1. 安装Nginx负载均衡

在主服务器宝塔面板操作:

 安装Nginx
bt 1
 进入Nginx配置目录
cd /www/server/nginx/conf

2. 配置负载均衡

创建upstream.conf文件:

upstream backend {
    server 主服务器IP:80 weight=5;
    server 备用服务器IP:80 weight=1;
    keepalive 32;
}

3. 安装Keepalived

两台服务器均执行:

yum install keepalived -y   CentOS
apt install keepalived -y  Ubuntu

4. 配置Keepalived(主服务器)

vim /etc/keepalived/keepalived.conf

内容示例:

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100   主服务器优先级更高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24   虚拟IP地址
    }
}

5. 配置Keepalived(备用服务器)

修改以下参数:

state BACKUP
priority 90

四、启动与测试

  1. 启动服务:systemctl start keepalived
  2. 测试主服务器宕机:ifconfig eth0 down
  3. 观察虚拟IP是否自动迁移

五、常见问题解决

问题 解决方案
VIP无法切换 检查防火墙是否放行VRRP协议(协议号112)
脑裂问题 配置多播检测或增加心跳线

通过以上配置,当主服务器发生故障时,备用服务器会在1-3秒内自动接管服务,实现无缝切换。建议定期进行故障演练,确保系统可靠性。

评论