负载均衡层 — 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_begpath_endhdr_dom(host)hdr_beg(host)
  • 健康检查option httpchk(主动)+ 被动检测

Haproxy 调度算法

  • roundrobin(轮询)、leastconn(最少连接)、source(源地址哈希)、uri(URI 哈希)

关联