使用SSL / HTTPS时,返回远程IP为127.0.0.1

时间:2014-07-12 07:52:44

标签: ruby-on-rails ssl https geocoding

使用https时,request.remote_ip返回127.0.0.1。这会阻止地理编码查找。

有没有办法获得正确的远程IP?

我已经看到了一些可能的解决方法:

request.env['REMOTE_ADDR'] 
request.env['HTTP_X_FORWARDED_FOR']

返回10.102.1.1

request.env[‘HTTP_X_REAL_IP’] 

返回“”

2 个答案:

答案 0 :(得分:0)

事实证明,这是九倍服务器设置方式的限制。

“由于我们的Rails堆栈是Apache Passenger,客户端IP头在通过HA Proxy负载均衡器时实际上被剥离。在此服务的CItrix实现中,我们无法将这些头传递到rails app。在此阶段,无法访问远程用户的IP地址。“

答案 1 :(得分:0)

作为一种可能的解决方法,您可以使用Fastly之类的服务来实现负载平衡,然后将其直接指向应用服务器的IP以绕过Ninefold上的HAProxy。你也会在这个过程中获得一个漂亮,快速的CDN。