Почему request.env ['REMOTE_ADDR'] возвращает два IP-адреса? - PullRequest
5 голосов
/ 11 марта 2010

Когда я захожу в приложение Rails 2.2 на своем удаленном сервере, я получаю следующее значение как REMOTE_ADDR.

request.env ['REMOTE_ADDR']: "75.184.124.93, 10.194.95.79"

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

Так откуда же 10.194.95.79?

Есть ли что-то о том, как удаленные адреса собираются и сообщаются в спецификации заголовков HTTP, которую я пропускаю? Это ожидаемое нормальное поведение?

1 Ответ

5 голосов
/ 11 марта 2010

Это определенно из-за обратного прокси.

Обратные прокси (я часто использую режимы BigIP и Apache mod_proxy) обычно добавляют все промежуточные IP-адреса в список, чтобы вы могли выбрать нужные в своем коде.

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

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