为什么request.env ['REMOTE_ADDR']会返回两个IP?

时间:2010-03-11 03:43:53

标签: ruby-on-rails

当我在远程服务器上访问我的Rails 2.2应用程序时,我收到以下值作为我的REMOTE_ADDR。

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

让我难过的是为什么有两个IP。快速检查我目前租用的公共IP,确认我的IP是75.184.124.93。

那么10.194.95.79来自哪里?

是否存在关于如何在我缺少的HTTP标头规范中收集和报告远程地址的事情?这是预期的正常行为吗?

1 个答案:

答案 0 :(得分:5)

这绝对是因为反向代理。

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

例如,您可能希望找到要登录到webstats应用程序的公用文件,因此它位于REMOTE_ADDR中。但是你也有内部IP,所以你知道它来自哪个负载均衡器,哪个内部服务器用于某种内部网络跟踪等等。