2010-03-11 77 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),所以你知道它來自哪個負載均衡器,哪些內部服務器用於某種內部網絡跟蹤等。

相關問題