我已经尝试了几天,但仍然无法让透明的 TCP 负载均衡器使用 HAproxy/NGINX 工作。
问题是:一切正常,直到我尝试启用透明度。NGINX 和 HAproxy 都进行负载平衡,但将 localhost 作为用户 IP。
我试图改变这一点:
将它们更改为以 root 身份运行。
对于 NGINX:
配置了 iptables,添加了路由表等。关于“默认网关应该是 NGINX 服务器 ip”的部分我不明白,因为 NGINX 和应用程序在没有任何容器的同一台机器上运行。
对于 HAProxy:
- 根据文章设置 iptables 并更改 sysctl 转发选项:https ://www.loadbalancer.org/blog/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy/
- 但是,我没有得到关于“但是,如果要使用客户端源 IP 地址,则 HAProxy 服务器必须位于返回流量的路径中”的部分。出于与 NGINX 相同的原因。
所以,一般的问题是:我在 xxxx:30000 上有 HAproxy/NGINX 负载平衡。在同一台机器上,我在 xxxx:30001 和 xxxx:30002 有应用程序。
如何负载平衡此配置?需要哪些额外的路由规则?我是否需要为某些重新路由创建一个虚拟子网?因为到目前为止,负载均衡器似乎可以连接到应用程序,但无法将答案返回给用户。