如何使对 WAN 的请求从前端 HAProxy IP 而不是后端服务器 IP 出现?

如何使对 WAN 的请求从前端 HAProxy IP 而不是后端服务器 IP 出现?

我建立了一个类似这样的网络农场:

          |-------------------> Apache1
          |
 HAProxy -|
          |
          |-------------------> Apache2

HAproxy 有外部 IP xxxx

Apache1 有 2 个接口:内部 yyyy(用于来自 HAProxy 的请求)和外部 IP zzzz

Apache2 有 2 个接口:内部 yy.yy.yy.yy(用于来自 HAProxy 的请求)和外部 IP zz.zz.zz.zz

任何时候我从其中一个 apache 服务器向服务器场外发出请求(例如,使用 php 发出 curl 请求到 google.com)时,REMOTE_ADDR 标头就是发出调用的 apache 服务器的外部 IP(yy.yy.yy.yy 或 zz.zz.zz.zz)。

问题是,我向某些服务器发出此类请求以限制来自 IP 的请求。理想情况下,我希望向他们提供 HAProxy 服务器 (xxxx) 的 IP,而不是向他们提供 2 个后端服务器的 IP。

有没有办法通过配置 apache 或 haproxy 来实现这一点?

答案1

您必须配置 apache 通过代理服务器发送请求。最简单的设置是在 haproxy 机器上安装 squid 并在路由器/防火墙上实现透明代理。

假设它是 Linux,你可以使用它

http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

如果是其他东西(cisco、checkpoint),它们都应该支持类似的设置。

如果您无权访问防火墙/路由器,您可以在实际的 apache 机器上实现透明代理。

相关内容