当前位置:首页 > Centos > 正文

Centos高可用架构实战指南(手把手教你搭建Keepalived+HAProxy双机热备系统)

在企业级应用中,系统的高可用性(High Availability, HA)至关重要。一旦服务器宕机,业务可能中断,造成严重损失。本文将围绕Centos高可用架构,以通俗易懂的方式,带领零基础用户一步步搭建基于 Keepalived 和 HAProxy 的双机热备系统,实现服务的自动故障转移与负载均衡。

什么是高可用架构?

高可用架构是指通过冗余设计,确保当某台服务器出现故障时,其他服务器能立即接管其工作,从而保证服务持续可用。在 CentOS 系统中,常用 Keepalived 实现 VIP(虚拟IP)漂移,配合 HAProxy 实现负载均衡,构成一套稳定可靠的Centos双机热备方案。

Centos高可用架构实战指南(手把手教你搭建Keepalived+HAProxy双机热备系统) Centos高可用架构 Keepalived配置教程 HAProxy负载均衡 Centos双机热备 第1张

实验环境准备

  • 操作系统:CentOS 7 或 CentOS 8(建议最小化安装)
  • 两台服务器(主节点 + 备节点)
  • 网络互通,关闭防火墙或放行必要端口(如 VRRP 协议使用 112)
  • 一个虚拟 IP(VIP),例如:192.168.1.100

第一步:安装 Keepalived 和 HAProxy

在两台服务器上分别执行以下命令:

# 安装 EPEL 源(若未安装)sudo yum install -y epel-release# 安装 Keepalived 和 HAProxysudo yum install -y keepalived haproxy

第二步:配置 HAProxy(两台服务器相同)

编辑 HAProxy 配置文件 /etc/haproxy/haproxy.cfg,假设我们要代理后端 Web 服务(如 Nginx):

global    log         127.0.0.1 local2    chroot      /var/lib/haproxy    pidfile     /var/run/haproxy.pid    maxconn     4000    user        haproxy    group       haproxy    daemondefaults    mode                    http    log                     global    option                  httplog    option                  dontlognull    timeout connect         10s    timeout client          30s    timeout server          30sfrontend http_front    bind *:80    default_backend http_backbackend http_back    balance roundrobin    server web1 192.168.1.10:80 check    server web2 192.168.1.11:80 check

保存后启动 HAProxy 并设置开机自启:

sudo systemctl start haproxysudo systemctl enable haproxy

第三步:配置 Keepalived(主备节点不同)

主节点(MASTER)配置 /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(VIP)    }}

备节点(BACKUP)配置类似,只需修改两处:

vrrp_instance VI_1 {    state BACKUP            # 改为 BACKUP    interface eth0    virtual_router_id 51    priority 90             # 优先级低于主节点    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.100/24    }}

启动 Keepalived 并设置开机自启:

sudo systemctl start keepalivedsudo systemctl enable keepalived

第四步:验证高可用效果

1. 在正常状态下,使用 ip addr show 查看主节点是否绑定了 VIP(192.168.1.100)。

2. 停止主节点的 Keepalived:sudo systemctl stop keepalived

3. 观察备节点是否自动接管 VIP(几秒内完成切换)。

4. 访问 http://192.168.1.100,应能正常看到后端 Web 服务内容,证明HAProxy负载均衡Keepalived配置教程已生效。

常见问题排查

  • 确保两台服务器时间同步(可使用 chrony 或 ntp)
  • 检查 SELinux 是否阻止服务运行(建议临时禁用测试)
  • 确认网卡名称正确(使用 ip a 查看)
  • 查看日志:journalctl -u keepalived -f

总结

通过本文的详细步骤,即使是 Linux 小白也能成功搭建一套基于 CentOS 的高可用架构。这套方案结合了 Keepalived 的故障转移能力和 HAProxy 的负载均衡能力,是构建企业级高可用服务的基石。掌握 Centos高可用架构Keepalived配置教程HAProxy负载均衡Centos双机热备 四大核心技能,将为你在运维和 DevOps 领域打下坚实基础。