必须完成反向代理基础配置和健康检查参数的显式声明:global段配日志,defaults段设mode http及超时,frontend绑定端口并指定backend,backend中用balance、option httpchk、http-check及server check配合inter/rise/fall参数实现HTTP级健康检查。

要在Linux服务器上让HAProxy稳定转发HTTP请求并自动屏蔽宕机的后端节点,必须完成反向代理基础配置和健康检查参数的显式声明,缺一不可。
安装并启用HAProxy服务
在CentOS/RHEL 9系统中执行:yum install -y haproxy;Ubuntu/Debian系统则运行:apt-get update && apt-get install -y haproxy。
安装完成后立即启用并启动服务:systemctl enable --now haproxy。这一步失败会导致后续所有配置无法生效,【必须确认 systemctl is-active haproxy 返回 active】。
配置全局与默认参数
编辑主配置文件:vim /etc/haproxy/haproxy.cfg。
在 global 段内添加日志支持,否则健康检查失败时无迹可查:log 127.0.0.1 local0 info。
defaults 段必须显式指定 mode http,否则后端健康检查会静默失效——TCP模式下 check 参数不触发HTTP级探测。
设置连接超时值,避免请求卡死:timeout connect 5s、timeout client 30s、timeout server 30s。
定义前端监听与路由规则
添加 frontend 块绑定80端口:
frontend http_front<br> bind *:80<br> default_backend http_back
这里不设ACL也能走通,但若未来要按域名分流,现在就该把 acl 和 use_backend 行写进去,避免后期改配置重启两次。
安装并运行 Aperture(Lightning Labs 的 L402 闪电反向代理),用于创建 L402 付费墙、配置付费 API 端点、为其他代理托管付费内容或测试 L402 认证流程。
配置后端服务器与健康检查
方法一:基础HTTP健康检查(推荐)
在 backend http_back 块中写入:
balance roundrobin<br>option httpchk GET /health HTTP/1.1\r\nHost: localhost<br>http-check expect status 200<br>server web1 192.168.1.10:80 check inter 2000 rise 2 fall 3<br>server web2 192.168.1.11:80 check inter 2000 rise 2 fall 3
【inter 2000 是毫秒单位,写成 2s 会报错】;rise 2 表示连续2次成功才恢复上线,fall 3 表示连续3次失败才摘除,这个组合能有效过滤瞬时抖动。
方法二:仅TCP连通性检查(适用于无/health端点的旧服务)
把 option httpchk 和 http-check 行删掉,保留 check 关键字即可,HAProxy会尝试三次TCP握手并等待SYN-ACK响应。
验证配置并重载服务
① 运行 haproxy -c -f /etc/haproxy/haproxy.cfg 检查语法,输出 Configuration file is valid 才继续。
② 执行 systemctl reload haproxy 轻量重载配置,不中断现有连接。
③ 用 curl -I http://localhost 测试前端是否响应;再手动停掉一台后端Nginx,观察 tail -f /var/log/haproxy.log 是否出现 Server web1 is DOWN 日志。
④ 访问 http://<haproxy-ip>/haproxy?stats</haproxy-ip>(需先在配置中启用 stats),确认后端状态栏显示 UP 或 DOWN 实时变化。

















