如何实现HAProxy集群多节点私有配置?

Load balancing

1 前言

一个问题,一篇文章,一出故事。
笔者之前创建的HAProxy集群(基于3层路由,即任播技术实现多个HAProxy节点集群),集群的每个节点配置文件都存放于“/etc/haproxy/conf.d”,使用脚本手动将单节点配置推送到其他的HAProxy节点,以便实现配置文件同步。
今天笔者需要在HAProxy集群中的每个节点创建差异配置文件夹“/etc/haproxy/private”,用于存放非同步的差异配置,并应用于不同的HAProxy节点。

2 最佳实践

2.1 环境信息

如何安装部署HAProxy?

2.2 配置方法

2.2.1 创建私有配置文件夹

mkdir /etc/haproxy/private

2.2.2 修改启动脚本

vim /usr/lib/systemd/system/haproxy.service

配置修改如下,

[Unit]
Description=HAProxy Load Balancer
After=network-online.target
Wants=network-online.target

[Service]
EnvironmentFile=-/etc/sysconfig/haproxy
Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid" "CFGDIR=/etc/haproxy/conf.d"
Environment="PCFGDIR=/etc/haproxy/private"
ExecStartPre=/usr/sbin/haproxy -f $CONFIG -f $CFGDIR -f $PCFGDIR -c -q $OPTIONS
ExecStart=/usr/sbin/haproxy -Ws -f $CONFIG -f $CFGDIR -f $PCFGDIR -p $PIDFILE $OPTIONS
ExecReload=/usr/sbin/haproxy -f $CONFIG -f $CFGDIR -f $PCFGDIR -c -q $OPTIONS
ExecReload=/bin/kill -USR2 $MAINPID
KillMode=mixed
SuccessExitStatus=143
Type=notify

[Install]
WantedBy=multi-user.target

配置修改后,你需要执行如下命令重载服务使配置生效,

systemctl daemon-reload

2.2.3 重启服务应用设置

systemctl restart haproxy

2.2.4 确认设置生效

systemctl status haproxy

可见如下变更,

● haproxy.service - HAProxy Load Balancer
     Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; preset: disabled)
     Active: active (running) since Thu 2025-10-23 08:57:34 CST; 45min ago
    Process: 2061874 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -f $CFGDIR -f $PCFGDIR -c -q $OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 2061876 (haproxy)
      Tasks: 3 (limit: 47368)
     Memory: 4.2M
        CPU: 780ms
     CGroup: /system.slice/haproxy.service
             ├─2061876 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d -f /etc/haproxy/private -p /run/haproxy.pid
             └─2061878 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d -f /etc/haproxy/private -p /run/haproxy.pid
没有评论

发表回复

Load balancing
如何设置haproxy节点异常邮件通知?

1 前言 一个问题,一篇文章,一出故事。 笔者haproxy上代理的节点越来越多,因此被haprox …

Load balancing
如何配置HAProxy的状态统计页面?

1 前言 一个问题,一篇文章,一出故事。 笔者今天想通过http的web页面查看haproxy的服务 …

Load balancing
如何用HAProxy代理minio?

1 前言 一个问题,一篇文章,一出故事。 笔者今天需要实现HAProxy代理minio,因此整理此文 …