Я пытаюсь отладить проблему, когда Rails не показывает правильный IP-адрес, и я хотел бы знать, как показать заголовки, которые Rack получает от nginx, и как Rails видит их после того, как они были обработаны всеми стойка промежуточное ПО. Есть ли простой способ сделать это в контексте приложения Rails 4.2.x?Как показать заголовки, полученные Rack, и как Rails видит их?
ответ
Вы сможете использовать request.headers
: [? Rack :: Request - как я получаю все заголовки]
#controller action
request.headers.each do |header|
header
end
Это дало мне всю необходимую информацию, а затем и некоторые. Похоже, что экземпляр ActionDispatch :: RemoteIp :: GetIp имеет хеш @env с «REMOTE_ADDR» => «127.0.0.1», «HTTP_X_FORWARDED_FOR» => «<фактический IP-адрес>», а хвосты все еще используют 127.0.0.1. Но это еще одна проблема. – sockmonk
Спасибо, у вас есть какие-то ссылки на ваш следующий вопрос? –
Я думаю, проблема в том, что trusted_proxies по-прежнему имеет внутренние исключения сети, в дополнение к регулярному выражению, которое я ему дал. Когда-то в производстве будет нормально исключать их, поэтому я думаю, что я просто не собираюсь сражаться с этой битвой прямо сейчас. – sockmonk
Возможный дубликат (http://stackoverflow.com/questions/6317705/ rackrequest-how-do-i-get-all-headers) –
Не отображается правильный IP-адрес? Поделитесь своей конфигурацией веб-сервера, чтобы узнать, почему. – Anatoly