Получить реальный IP-адрес клиента с помощью Rails и Nginx? - PullRequest
8 голосов
/ 26 мая 2011

У моего сервера нет общедоступного IP-адреса, поэтому я не знаю, как получить реальный IP-адрес клиента.

Это конфигурация моего nginx:

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

В контроллере моего Rails-приложения и request.ip, и request.remote_ip возвращают адрес шлюза моего сервера.

Как получить реальный IP-адрес клиента?

Как получить значение X-Forwarded-Forиз рельсового запроса?

Ответы [ 2 ]

20 голосов
/ 23 июля 2011

Rails должен был делать это автоматически для нас, но, похоже, он сломан с текущей версией 3.x

Я использую это:

def ip() request.env['HTTP_X_FORWARDED_FOR'] || request.remote_ip end
6 голосов
/ 26 мая 2011

Вы должны получить значение заголовка X-forwarded-for

http://en.wikipedia.org/wiki/X-Forwarded-For

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...