2010-03-11 49 views
5

当我在远程服务器上访问我的Rails 2.2应用程序时,我收到以下值作为REMOTE_ADDR。为什么request.env ['REMOTE_ADDR']返回两个IP?

request.env [ 'REMOTE_ADDR']: “75.184.124.93,10.194.95.79”

发生了什么我难倒就是为什么有两个IP地址。快速检查我目前租用的公共IP证实我的IP是75.184.124.93。

那么10.194.95.79从哪里来?

是否有关于远程地址如何收集和报告在HTTP头说明我缺少的东西?这是预期的,正常的行为?

+0

10.194.95.79是专用网络IP地址。 – 2010-03-11 03:56:32

+0

为什么会在request.env ['REMOTE_ADDR']中追加到75.184.124.93? – 2010-03-11 04:28:48

+0

这可能是因为HTTP请求标头是由位于我的应用程序层之前的反向代理修改的? – 2010-03-11 04:30:07

回答

5

这绝对是因为反向代理。

反向代理(我经常使用BigIPs和Apache mod_proxy模式)通常会将所有介入IP添加到列表中,以便您可以在代码中选择正确的代理。

例如,您可能希望找到一个公用的应用程序登录到webstats应用程序,所以它在REMOTE_ADDR中是正确的。但你也有内部IP(s),所以你知道它来自哪个负载均衡器,哪些内部服务器用于某种内部网络跟踪等。

相关问题