本文详细介绍如何利用宝塔面板搭建高可用服务器集群,通过Nginx负载均衡和Keepalived实现故障自动转移(Failover),确保服务持续在线。包含配置步骤、脚本示例及常见问题解决方案。
一、什么是Failover自动切换?
Failover(故障转移)是当主服务器发生故障时,系统自动将流量切换到备用服务器的过程。通过宝塔面板配合负载均衡工具,可以低成本实现企业级高可用架构。
二、准备工作
- 至少两台安装宝塔面板的服务器(建议相同配置)
- 已解析的域名(如example.com)
- 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
四、启动与测试
- 启动服务:
systemctl start keepalived
- 测试主服务器宕机:
ifconfig eth0 down
- 观察虚拟IP是否自动迁移
五、常见问题解决
问题 | 解决方案 |
---|---|
VIP无法切换 | 检查防火墙是否放行VRRP协议(协议号112) |
脑裂问题 | 配置多播检测或增加心跳线 |
通过以上配置,当主服务器发生故障时,备用服务器会在1-3秒内自动接管服务,实现无缝切换。建议定期进行故障演练,确保系统可靠性。
评论