2015-10-18 3 views
1

Я пытаюсь отладить проблему, когда Rails не показывает правильный IP-адрес, и я хотел бы знать, как показать заголовки, которые Rack получает от nginx, и как Rails видит их после того, как они были обработаны всеми стойка промежуточное ПО. Есть ли простой способ сделать это в контексте приложения Rails 4.2.x?Как показать заголовки, полученные Rack, и как Rails видит их?

+0

Возможный дубликат (http://stackoverflow.com/questions/6317705/ rackrequest-how-do-i-get-all-headers) –

+0

Не отображается правильный IP-адрес? Поделитесь своей конфигурацией веб-сервера, чтобы узнать, почему. – Anatoly

ответ

1

Вы сможете использовать request.headers: [? Rack :: Request - как я получаю все заголовки]

#controller action 
request.headers.each do |header| 
    header 
end 
+1

Это дало мне всю необходимую информацию, а затем и некоторые. Похоже, что экземпляр ActionDispatch :: RemoteIp :: GetIp имеет хеш @env с «REMOTE_ADDR» => «127.0.0.1», «HTTP_X_FORWARDED_FOR» => «<фактический IP-адрес>», а хвосты все еще используют 127.0.0.1. Но это еще одна проблема. – sockmonk

+0

Спасибо, у вас есть какие-то ссылки на ваш следующий вопрос? –

+0

Я думаю, проблема в том, что trusted_proxies по-прежнему имеет внутренние исключения сети, в дополнение к регулярному выражению, которое я ему дал. Когда-то в производстве будет нормально исключать их, поэтому я думаю, что я просто не собираюсь сражаться с этой битвой прямо сейчас. – sockmonk