env ['REMOTE_ADDR']与歌利亚红宝石

时间:2014-06-03 12:38:22

标签: ruby env goliath

我有一个带有Goliath gem(ruby)的API,我想获取调用我的API的mov的ip。情况是,env['REMOTE_ADDR']总是在某些设备给我打电话时给我127.0.0.1。它应该是来自手机的ip正在打电话给我,对吗?

请帮忙吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

问题在于通过Nginx进行代理。我必须按如下方式更改Nginx代理配置。

upstream app_xxx {
   server 127.0.0.1:3000;
}

server {
   listen 80;

   location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_pass http://app_xxx;
   }
}

重要的是:真实IP位于X-Real-IP参数中。所以你必须以下列方式访问它:

env['X-Real-IP']