Ruby on rails Rails-request.env[';HTTP#ux#uForwarded#ufor';]和request.remote#uIP之间的差异
我正在对现有RoR应用程序添加一些更改,并发现Ruby on rails Rails-request.env[';HTTP#ux#uForwarded#ufor';]和request.remote#uIP之间的差异,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在对现有RoR应用程序添加一些更改,并发现request.env['HTTP\u X\u FORWARDED\u FOR']返回了nil。我把它改为request.remote_ip,得到了正确的客户端ip地址 为什么request.remote\u ip在request.env['HTTP\u X\u FORWARDED\u FOR']返回nil?他们之间有什么区别?我如何使request.env['HTTP\u X\u FORWARDED\u']工作,我应该使用哪一个(最佳实践) 通常,
request.env['HTTP\u X\u FORWARDED\u FOR']
返回了nil
。我把它改为request.remote_ip,得到了正确的客户端ip地址
为什么
request.remote\u ip
在request.env['HTTP\u X\u FORWARDED\u FOR']
返回nil
?他们之间有什么区别?我如何使request.env['HTTP\u X\u FORWARDED\u']
工作,我应该使用哪一个(最佳实践) 通常,您应该使用request.remote\u ip
。它是Rails引入的一种方法,尝试使用各种方法收集连接的实际远程IP,包括在适当的情况下评估request.env['HTTP\u X\u FORWARDED\u']
最后,
request.remote_IP
返回的IP在中计算。这比尝试自己收集IP更通用,因为它考虑了代理阶段,可以设置各种HTTP头。X-Forwarded-For被HTTP代理和负载平衡器使用