Как лучше всего настроить ведение журнала IIS7 для захвата заголовка «HTTP_X_FORWARDED_FOR»

Как лучше всего настроить ведение журнала IIS7 для захвата заголовка «HTTP_X_FORWARDED_FOR»

У нас есть серверы IIS7, работающие через обратный прокси-сервер nginx.

Обратный прокси-сервер отправляет стандартный заголовок «HTTP_X_FORWARDED_FOR» с IP-адресом посетителя, но в журнале IIS7 регистрируется только IP-адрес сервера nginx (что имеет смысл, но это не то, что мне нужно).

Как мне указать IIS7 вместо этого регистрировать заголовок «HTTP_X_FORWARDED_FOR» (или регистрировать его дополнительно)?

(примечание: я администратор Linux, а не Windows, поэтому подробные инструкции и ссылки будут искренне приветствоваться)

решение1

Это не встроено в IIS, но есть модуль, который вы можете установить, чтобы выполнить эту функцию. Он называется ARR helper, но он будет работать для любого прокси перед IIS:

http://blogs.iis.net/anilr/archive/2009/03/03/client-ip-not-logged-on-content-server-when-using-arr.aspx

решение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. Этот ответ адаптирован со страницы по ссылке.

  1. ОткрытьМенеджер ИИС.

  2. Выберите сайт или сервер вСвязипанель, а затем дважды щелкнитеВедение журнала. Обратите внимание, что расширенное ведение журнала доступно только для ведения журнала на уровне сайта — если вы выбрали сервер вСвязипанель, затемНастраиваемые поляразделПоля регистрации W3Cдиалог отключен.

  3. вФорматполе подЖурнальный файл, выбиратьW3Cи затем нажмитеВыберите поля....

  4. вПоля регистрации W3Cдиалог, щелкнитеДобавить поле.... Обратите внимание, что расширенное ведение журнала доступно только для ведения журнала на уровне сайта — если вы выбрали сервер вСвязипанель, затемДобавить поле...выключен.

  5. вДобавить пользовательское поледиалог, введитеИмя полянапример, c-ip-originalдля идентификации пользовательского поля в файле журнала. Обратите внимание, что имя поля не может содержать пробелов.

  6. ВыбиратьЗаголовок запросавТип источникасписок.

  7. Введите X-FORWARDED-FORвИсточник.

  8. НажмитеХОРОШО.

  9. НажмитеХОРОШО.

  10. НажмитеПрименятьвДействияпанель для применения новой конфигурации.

После настройки пользовательских полей IIS создаст новые текстовые файлы журнала с добавлением «_x» к имени файла, чтобы указать, что файл содержит пользовательские поля.

Обратите внимание, что общий размер данных, собранных из всех пользовательских полей, не может превышать 65 536 байт. Если общий размер превышает 65 536 байт, то IIS обрежет данные.

Связанный контент