我有两台(Windows 2008 R2)服务器,我们称它们为:A
和B
。
服务器A
正在运行软件服务器(本例中为 Apache HTTP)。
在不触碰或更改 Apache 配置的任何内容的情况下,我需要将所有数据包B
路由到服务器,并且(非常重要)Apache 需要知道真实访问者的 IP 地址。这意味着当访问者 192.168.1.2通过隧道A
联系服务器上的 Apache 时,Apache 应该记录 IP 192.168.1.2,而不是 192.168.1.100A
B
为了让事情变得更加复杂,如果我想要更多像这样的服务器该怎么办B
。
A
无论访问者从哪个服务器连接,服务器都应该以某种方式知道访问者的真实 IP 地址B
。所有这些都应该在网络/操作系统级别完成。(意思是:不必为每个软件服务器配置 Proxy Socks 防火墙或类似的东西)
我对隧道和网络完全是个新手,我对在 Windows 服务器中实现这一点需要什么类型的隧道(VPN、GRE、IPSEC?)感到很困惑。我应该寻找什么?是否可以以非常兼容的方式将B
Linux 服务器连接到A
Windows 服务器?我在这个网站上读到,理论上可行,但实践起来非常困难。
任何关于此事的意见都将不胜感激。
答案1
根据您的解释,您似乎更有可能正在寻找反向代理/负载平衡器。它将位于您的“B”位置,并且流量可以传递到您的 A 服务器。代理可以部署在路由模式或第 2 层模式下。无论哪种方式,为了确保您记录原始 IP,您都希望确保从代理发送 x-forwarded-for 标头。
您可以安装免费的代理软件产品,或者使用 KEMP、Netscaler 等设备。