env['REMOTE_ADDR'] с рубином Goliath

У меня есть API с драгоценным камнем Goliath (ruby), и я хочу получить IP-адрес movile, который вызывает мой API. Дело в том, что env['REMOTE_ADDR'] всегда давайте мне 127.0.0.1, когда мне звонит какое-то устройство. Должно быть, мне звонит ip с мобильного, верно?

Любая помощь, пожалуйста?

Заранее спасибо!


person Luismiv85    schedule 03.06.2014    source источник


Ответы (1)


Проблема была с проксированием через 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']
person Luismiv85    schedule 04.06.2014