服务器高可用架构搭建:教你搭建服务器高可用架构,从入门到验证

你需要准备哪些东西

搭建服务器高可用架构之前,先确认两件事:你有两台 Linux 服务器(CentOS 7 或 Ubuntu 20.04 均可),并且它们之间网络可以互通。
如果只有一台服务器,可以先用虚拟机模拟,步骤完全一样。
另外,每台服务器最好有相同版本的 Nginx 和 Keepalived 安装包。

安装核心组件

安装 Nginx

在两台服务器上分别执行:

# CentOS 7
yum install -y epel-release && yum install -y nginx
# Ubuntu 20.04
apt update && apt install -y nginx

安装后启动并设置开机自启:

systemctl start nginx
systemctl enable nginx

测试 Nginx 是否正常:访问服务器 IP,看到 Welcome 页面即为成功。

安装 Keepalived

Keepalived 负责健康检查和虚拟 IP 漂移。
在两台服务器上分别执行:

# CentOS 7
yum install -y keepalived
# Ubuntu 20.04
apt install -y keepalived

配置高可用,关键一步

下面以“主-备”模式为例,主服务器(192.168.1.10)和备用服务器(192.168.1.20)共享一个虚拟 IP(192.168.1.100)。

主服务器配置

编辑 /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
}
vrrp_script chk_nginx {
   script "/usr/bin/kill -0 $(cat /var/run/nginx.pid 2>/dev/null) || exit 1"
   interval 2
   weight -20
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

注意把 interface 改成实际网卡名(如 ens33),priority 主服务器要比备用高(主101,备100)。

备用服务器配置

备用服务器上同样编辑 /etc/keepalived/keepalived.conf,仅修改 stateBACKUPpriority100,其余保持一致。

启动 Keepalived

在两台服务器上分别执行:

systemctl start keepalived
systemctl enable keepalived

此时虚拟 IP 会绑定到主服务器上。
可以用 ip addr show 查看。

常见问题与避坑

  • 虚拟 IP 无法 ping 通? 检查防火墙是否放行 VRRP 协议(协议号 112)或关闭防火墙:systemctl stop firewalld,生产环境请放行。
  • 切换后服务不正常? 确认 Keepalived 的健康检查脚本路径是否正确。示例脚本检查 Nginx 进程是否存在,如果 Nginx 挂了 Keepalived 会自动降权触发切换。
  • 两个节点都抢主? 检查 virtual_router_id 是否一致,且 priority 值没有相同。另外确认网络中没有其他路由器占用该 ID。
  • VIP 漂移后客户端需要重连? 如果应用没有做重连机制,建议在应用层增加连接重试或使用 DNS 轮询结合短 TTL。

如何验证架构真的高可用

  1. 观察当前哪台服务器持有 VIP:在两台服务器上分别运行 ip addr show 看 192.168.1.100 出现在哪。
  2. 手动停掉主服务器的 Nginx:systemctl stop nginx,等待 2 秒后 ip addr show 应看到 VIP 已漂移到备用服务器。
  3. 访问虚拟 IP 的 Nginx 页面,应仍能正常访问。
  4. 恢复主服务器 Nginx:systemctl start nginx,稍后 VIP 会主动漂移回来(因为主 priority 更高)。

如果你也在搭建服务器高可用架构,建议先按以上步骤完整执行,再根据实际业务调整健康检查脚本和告警通知。
遇到异常时优先检查防火墙、 Keepalived 日志(/var/log/messages)和 Nginx 运行状态。

写在最后

高可用不是一次配置就一劳永逸,定期演练切换、监控 VIP 状态和业务健康同样重要。
本文提供的方案足够应对绝大多数中小型 Web 服务场景,零基础用户也能在 30 分钟内完成搭建。

分享到:
上一篇
入门用Docker部署Nextcloud网盘,详细步骤与避坑
下一篇
宝塔面板批量删除文件实操指南:两种方法安全快速清理
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意