0

我有一个带有 Goliath gem (ruby) 的 API,我想获取调用我的 API 的移动设备的 ip。情况是,当某些设备呼叫我时,env['REMOTE_ADDR']请始终给我。127.0.0.1应该是手机的ip给我打电话吧?

请问有什么帮助吗?

提前致谢!

4

1 回答 1

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']
于 2014-06-04T17:53:16.637 回答