负载均衡层 — Haproxy 与客户端 IP 透传
概述
Day34 聚焦负载均衡环境中的客户端真实 IP 透传(X-Forwarded-For / Proxy Protocol),以及 Haproxy 的完整配置体系(frontend/backend、四层/七层代理、ACL 规则、健康检查)。
核心内容
客户端 IP 透传问题
- 多层代理下
$remote_addr只能记录上一跳 IP - 七层透传:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for - 四层透传:使用 Proxy Protocol(HAProxy 社区提出),四层在 TCP 连接开始时附加客户端 IP 信息
Haproxy 核心配置
- 分离模式:
frontend(接收请求)→backend(后端服务器池) - 四层模式(
mode tcp):代理 MySQL/Redis 等 TCP 服务 - 七层模式(
mode http):代理 HTTP/HTTPS - ACL 规则:
path_beg、path_end、hdr_dom(host)、hdr_beg(host)等 - 健康检查:
option httpchk(主动)+ 被动检测
Haproxy 调度算法
roundrobin(轮询)、leastconn(最少连接)、source(源地址哈希)、uri(URI 哈希)
关联
- 前驱:集群部署(Nginx 反向代理基础)
- 后续:LVS DR 模式、Keepalived 高可用
- 相关概念:防火墙(iptables NAT 规则对比)