0
点赞
收藏
分享

微信扫一扫

HAProxy 和 Keepalived 结合使用配置案例


HAProxy 和 Keepalived 经常被结合使用,以构建更加健壮和可靠的负载均衡及高可用性解决方案。下面是如何将它们结合起来使用的一个常见架构:

架构概述

  1. 前端负载均衡:使用 HAProxy 处理前端的请求负载均衡。HAProxy 可以根据不同的策略将请求分发到后端的服务器集群中。
  2. 高可用性:使用 Keepalived 来实现 HAProxy 的高可用性。Keepalived 可以监视 HAProxy 的运行状态,并在 HAProxy 故障时将虚拟 IP 地址转移到备用的 HAProxy 服务器上。

具体实现

1. HAProxy 配置

HAProxy 负责接收外部请求并将请求分发到内部服务器。以下是 HAProxy 的一个基本配置示例:

global
    log         127.0.0.1 local0
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    timeout connect 5000
    timeout client  50000
    timeout server  50000

frontend www
    bind *:80
    default_backend servers

backend servers
    balance roundrobin
    server web1 192.168.1.10:80 check
    server web2 192.168.1.11:80 check

2. Keepalived 配置

Keepalived 用于确保 HAProxy 的高可用性。以下是 Keepalived 的一个基本配置示例:

global_defs {
    router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass abc123
    }
    virtual_ipaddress {
        192.168.1.1
    }
}

vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 95
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass abc123
    }
    virtual_ipaddress {
        192.168.1.1
    }
}

script {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight 2
}

notify_master "/etc/keepalived/master.sh"
notify_backup "/etc/keepalived/backup.sh"

在这个配置中,VI_1 是主实例,VI_2 是备用实例。如果 VI_1 出现故障,VI_2 会接管虚拟 IP 并成为新的主实例。

3. 健康检查脚本

你可能还需要编写一些脚本来检查 HAProxy 的状态,确保它在运行并且正常工作。这些脚本可以在 Keepalived 的配置中指定。

#!/bin/sh
# 检查 HAProxy 是否运行
if ! pgrep haproxy > /dev/null; then
    exit -1
fi

exit 0

优点

  • 高可用性:通过 Keepalived 的 VRRP 实现,确保即使 HAProxy 故障也能快速恢复服务。
  • 负载均衡:HAProxy 提供了强大的负载均衡能力,可以根据不同的策略分发请求。
  • 易维护:这种架构使得维护变得更加简单,因为 HAProxy 和 Keepalived 分别承担不同的职责。


举报

相关推荐

0 条评论