HAProxy负载均衡+通过iptables实现源IP透传

希望后端能够看到真实的用户IP，可以使用iptables进行透明转发。HAProxy可以将流量直接转发到后端服务器，同时保持源IP不变。以下是基本步骤： a. 启用IP转发确保Linux系统已启用IP转发： echo 1 > /proc/sys/net/ipv4/ip_forward b. 配置iptables 使用以下iptables命令进行流量重定向：允许8080端口流量 iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:8080 iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.11:8080 设置连接跟踪 iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp -d 192.168.1.11 --dport 8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT c. HAProxy配置在HAProxy配置中，您仍然可以监听8080端口，但确保它以TCP模式运行： frontend http_front bind *:8080 default_backend http_back backend http_back mode tcp server proxy1 192.168.1.10:8080 check server proxy2 192.168.1.11:8080 check 检查后端配置确保后端代理服务器没有其他配置或安全措施（例如，IP白名单）来阻止其识别真实的源IP。 SELinux或其他安全配置如果启用了SELinux或其他安全机制，确保它们不会干扰IP流量的转发。总结通过使用iptables进行透明转发，您可以确保后端代理服务器看到真实的用户IP，而不是HAProxy的IP。根据实际情况调整您的配置，确保一切正常工作。