使用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’]
返回“”
答案 0 :(得分:0)
事实证明,这是九倍服务器设置方式的限制。
“由于我们的Rails堆栈是Apache Passenger,客户端IP头在通过HA Proxy负载均衡器时实际上被剥离。在此服务的CItrix实现中,我们无法将这些头传递到rails app。在此阶段,无法访问远程用户的IP地址。“
答案 1 :(得分:0)
作为一种可能的解决方法,您可以使用Fastly之类的服务来实现负载平衡,然后将其直接指向应用服务器的IP以绕过Ninefold上的HAProxy。你也会在这个过程中获得一个漂亮,快速的CDN。