haproxy负载均衡多住宅服务器集群

HAProxy 负载均衡多住宅服务器集群配置指南

当你有多个分布在住宅、办公室或不同地点的服务器,想用一个统一的入口把流量分散到它们身上,HAProxy 是个轻量又可靠的选择。
本文直接面向零基础用户,按步骤讲清楚从安装到验证的完整流程。

多住宅服务器集群适合什么场景

比如你在不同小区或城市部署了多台低功耗主机,想对外提供一个稳定的 Web 服务;
或者你用几台旧电脑跑应用,希望单点故障后流量自动切到其他机器。
这些都属于多住宅服务器集群的典型场景。
HAProxy 能帮你把请求均匀或按权重分配给后端节点,同时自动摘除故障节点。

准备工作:服务器清单与网络要求

操作前请确保以下条件满足:

  • 一台前端节点:运行 HAProxy(这里以 Ubuntu 22.04 为例,其他 Linux 发行版类似)
  • 至少两台后端服务器:可以是不同网络的住宅机器,只要 HAProxy 能通过 IP 和端口访问它们
  • 所有节点之间网络互通:如果你有防火墙,记得放行 HAProxy 的监听端口(默认 80 或 443)和后端服务端口
  • 后端服务必须正常运行:比如 Nginx、Apache 或自定义应用,能用 IP:端口直接访问

建议先在后端服务器上各放一个内容不同的测试页面(如 index.html),方便后面验证负载均衡效果。

安装 HAProxy(以 Ubuntu 为例)

在 HAProxy 节点上执行:

sudo apt update
sudo apt install haproxy -y

安装完成后检查版本:

haproxy -v

如果输出类似 HAProxy version 2.6.x 说明安装成功。
如果是 CentOS/RHEL 使用 yum install haproxy,命令一样。

编写负载均衡配置文件

HAProxy 的配置文件默认在 /etc/haproxy/haproxy.cfg
直接编辑这个文件,下面是一个适配多住宅集群的示例:

global
    log /dev/log local0
    maxconn 4096
    user haproxy
    group haproxy

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

frontend http-in
    bind *:80
    default_backend servers_pool

backend servers_pool
    balance roundrobin
    option httpchk GET /health
    server server1 192.168.1.10:80 check inter 2000 fall 3 rise 2
    server server2 10.0.0.20:80 check inter 2000 fall 3 rise 2
    server server3 172.16.0.30:80 check inter 2000 fall 3 rise 2 backup

配置说明

  • frontend 定义监听端口,这里监听 80 端口,所有请求转到 servers_pool
  • backend 定义后端服务器列表,balance roundrobin 表示轮询分发
  • option httpchk 开启健康检查,HAProxy 会定期访问 /health 路径,如果连续失败 3 次就标记节点不可用,恢复正常 2 次后重新加入
  • server 行中 check 开启健康检测,inter 2000 每 2 秒检查一次
  • 最后一个 backup 标记 server3 为备用节点,只有前两台都不可用时才启用

重要:将 IP 和端口替换为你自己的后端服务器地址。
如果后端服务不支持 /health 路径,可以改成 option httpchk GET / 或去掉这行。

保存文件后,用以下命令检查语法是否正确:

haproxy -f /etc/haproxy/haproxy.cfg -c

如果输出 Configuration file is valid,继续下一步。

启动与验证负载均衡效果

启动 HAProxy 服务:

sudo systemctl restart haproxy
sudo systemctl enable haproxy

查看状态:

sudo systemctl status haproxy

确认 Active 为 running。
现在打开浏览器访问 HAProxy 节点的公网 IP 或域名,每次刷新应该看到不同后端服务器的测试页面。
如果用终端验证,可以执行:

curl http://你的HAProxyIP/

连续运行几次,观察返回的内容是否来自不同的后端节点。

你也可以查看 HAProxy 统计页面来确认各节点状态。
开启统计需要在配置文件中添加:

listen stats
    bind *:8404
    stats enable
    stats uri /stats
    stats refresh 10s
    stats auth admin:yourpassword

然后重启 HAProxy,访问 http://HAProxyIP:8404/stats,输入用户名密码即可看到各节点在线/离线状态、连接数等信息。

常见报错与解决办法

  • 后端服务器无法连接:检查防火墙是否放行了后端服务端口,同时确认 HAProxy 节点能否 telnet 后端IP 端口
  • 健康检查失败:确保后端 /health 路径存在且返回 200;如果不希望改后端,可以注释掉 option httpchk
  • 配置语法报错:仔细检查 server 行是否有拼写错误或缺少参数。
  • 服务启动失败:查看日志 journalctl -u haproxy/var/log/haproxy.log,通常能定位到具体行。

避坑提醒:会话保持与超时设置

如果后端应用需要会话保持(如用户登录状态),建议在 backend 中添加 cookie SERVERID insert indirect nocache 并在每个 server 后加 cookie server1(如 server server1 192.168.1.10:80 check cookie server1)。
同时避免将 timeout 设得太短,以免影响长连接应用。
健康检查间隔(inter)也不宜过小,否则可能误判。

如果你正在处理 HAProxy 负载均衡多住宅服务器集群,建议先按本文步骤完整执行,再根据自己的环境微调超时、算法或健康检查策略。
遇到异常时优先回看常见报错和避坑部分,大部分问题都能解决。

分享到:
上一篇
图片懒加载优化海外低速网络访问的完整教程
下一篇
数据库备份恢复乱码编码统一修复:数据库备份恢复乱码怎么办?统
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意