我们可以使用以下方法将 HAProxy 配置为透明代理指南在这里,其中一个步骤是
...to put the backend servers in a different subnet to the front end clients and make sure that the default gateway points back at the HAProxy load balancer.
然而当我们需要2 透明的HAProxy在我们的平衡服务器前面(为了冗余),这似乎不起作用,因为我们只能为我们的平衡服务器设置一个网关。
正确的系统设置方法是什么,以便我们可以在平衡服务器前面安装 2 个透明 HAProxy?使用透明代理的主要原因是需要通过 TCP 查找客户端的 IP 地址。
答案1
这里您可以使用几种方法。
第一种是在两台 haproxy 机器之间设置浮动 IP 地址,并使用 ucarp、keepalived 或 RedHat Cluster Suite 等工具在两台主机之间迁移 IP 地址。这样,当一台主机发生故障时,另一台主机将接管该 IP,您的 Web 服务器将只有一个网关 IP。
另一种方法 - 如果您使用 HTTP,则使用“mode http”而不是“mode tcp”负载平衡,并使用 X-HTTP-Forwarded-For。您必须重新配置您的 haproxy 和后端。后端必须使用类似 mod_rpaf/mod_extract_forwarded 的东西从 HTTP 标头中提取 IP,而 haproxy 必须使用指令:
option forwardfor except 127.0.0.0/8