
У нас есть серверы IIS7, работающие через обратный прокси-сервер nginx.
Обратный прокси-сервер отправляет стандартный заголовок «HTTP_X_FORWARDED_FOR» с IP-адресом посетителя, но в журнале IIS7 регистрируется только IP-адрес сервера nginx (что имеет смысл, но это не то, что мне нужно).
Как мне указать IIS7 вместо этого регистрировать заголовок «HTTP_X_FORWARDED_FOR» (или регистрировать его дополнительно)?
(примечание: я администратор Linux, а не Windows, поэтому подробные инструкции и ссылки будут искренне приветствоваться)
решение1
Это не встроено в IIS, но есть модуль, который вы можете установить, чтобы выполнить эту функцию. Он называется ARR helper, но он будет работать для любого прокси перед IIS:
решение2
Теперь есть модуль IIS7, который позволяет регистрировать пользовательские заголовки.
Как: http://learn.iis.net/page.aspx/579/advanced-logging-for-iis-70---custom-logging/
решение3
Хотя вопрос помечен тегом iis-7, это самый популярный ответ при поиске по X-Forwarded-For и IIS, поэтому я решил предоставить эту информацию для IIS 8.5.
IIS 8.5 и более поздние версии
В IIS 8.5 была представленаРасширенное ведение журналафункция, которая легко позволяет администратору регистрировать заголовки HTTP-запросов, такие как X-Forwarded-For. Этот ответ адаптирован со страницы по ссылке.
ОткрытьМенеджер ИИС.
Выберите сайт или сервер вСвязипанель, а затем дважды щелкнитеВедение журнала. Обратите внимание, что расширенное ведение журнала доступно только для ведения журнала на уровне сайта — если вы выбрали сервер вСвязипанель, затемНастраиваемые поляразделПоля регистрации W3Cдиалог отключен.
вФорматполе подЖурнальный файл, выбиратьW3Cи затем нажмитеВыберите поля....
вПоля регистрации W3Cдиалог, щелкнитеДобавить поле.... Обратите внимание, что расширенное ведение журнала доступно только для ведения журнала на уровне сайта — если вы выбрали сервер вСвязипанель, затемДобавить поле...выключен.
вДобавить пользовательское поледиалог, введитеИмя полянапример,
c-ip-original
для идентификации пользовательского поля в файле журнала. Обратите внимание, что имя поля не может содержать пробелов.ВыбиратьЗаголовок запросавТип источникасписок.
Введите
X-FORWARDED-FOR
вИсточник.НажмитеХОРОШО.
НажмитеХОРОШО.
НажмитеПрименятьвДействияпанель для применения новой конфигурации.
После настройки пользовательских полей IIS создаст новые текстовые файлы журнала с добавлением «_x» к имени файла, чтобы указать, что файл содержит пользовательские поля.
Обратите внимание, что общий размер данных, собранных из всех пользовательских полей, не может превышать 65 536 байт. Если общий размер превышает 65 536 байт, то IIS обрежет данные.