我正在尝试为特定控制器设置一些IP白名单,而我依赖于Teacher.prototype.constructor = Teacher
request.remote_ip
我的问题是,对于某些设备/网络,def country_whitelist
request_country = Custom::BackofficeLibrary.get_country_by_ip(request.remote_ip)
head 404 unless ['PE'].include? request_country
end
返回的IP地址是错误的。
例如,使用我手机的移动网络,当我在秘鲁时,我正在为美国获取IP。但是,如果我在手机上浏览http://www.whatismyip.com或http://freegeoip.net,我会获得正确的秘鲁IP地址。
所以在某些情况下(十分之一),当免费的互联网服务正确时,remote_ip无法获得正确的IP。
我的设置是AWS EC2 - > Nginx - > Puma - > Rails 5.0.0.1
我在前面尝试过使用和没有负载均衡器的AWS,但没有任何区别。
有什么想法吗?
编辑:
添加Ngnix部分配置,以防相关:
request.remote_ip