Файлы журнала IIS и балансировщик нагрузки? - PullRequest
9 голосов
/ 04 мая 2009

Мы размещаем наши приложения ASP.NET на двух веб-серверах (Server 2003, IIS 6), которые находятся за аппаратным балансировщиком нагрузки. Когда я просматриваю журналы IIS, значение c-ip в журналах IIS (v6) ВСЕГДА является IP-адресом балансировщика нагрузки. Я заметил, что в заголовках http есть заголовок X-Forwarded-For, который, кажется, имеет запрашивающий IP-адрес. Есть ли что-то, что я могу сделать, чтобы IIS регистрировал это значение заголовка в журналах?

Ответы [ 5 ]

5 голосов
/ 10 июня 2014

Я не знаю, как давно это существует, но расширение Advanced Logging для IIS 7 и выше (в Windows Server 2008 и выше) предлагает Настраиваемая регистрация функциональность , которая может использоваться для сбора (почти) произвольной информации в файлах журналов IIS, включая настраиваемые заголовки HTTP-запроса (и ответа), такие как X-Forwarded-For .

Я только сегодня настроил это на нашем сервере, и он прекрасно работает.

Следует отметить одну вещь: вместо редактирования определения журнала по умолчанию с именем % COMPUTERNAME% -Server , просто создайте новое на своем сайте или глобально на своем сервере, чтобы избежать исключения. запрос не поддерживается. " при попытке сохранить ваши изменения. Это происходит, когда вы пытаетесь изменить это определение по умолчанию на уровне сайта (спасибо этой теме за ответ).

3 голосов
/ 04 мая 2009

При прохождении через прокси-сервер x-forwarded-for - это то, что наиболее обычно используется балансировщиками нагрузки. Вы, вероятно, можете написать httpfilter , который поменяет это вокруг себя; или IIS Tracer имеет возможность воспроизведения со стандартными файлами; включая обмен полями c-ip и x-forwarded.

Если это не делается для использования стороннего инструмента отчетности; Возможно, вы захотите сбросить свои журналы в SQL Server, где вы можете манипулировать столбцами в любое время.

Лично я обращаюсь к последним, чтобы получить сводные данные для всех серверов; я делаю дамп в разные таблицы в одной и той же БД, а затем сообщаю со всех веб-серверов в ферме. Я также нахожу это проще, чем управлять 500 МБ или около того файлами журнала повсюду.

2 голосов
/ 16 апреля 2014

Это довольно старый вопрос, но я хотел бы добавить, что IIS 8.5 имеет возможность записи настраиваемые заголовки HTTP для журналов IIS. Это гораздо более приятный вариант, чем установка фильтра ISAPI или модуля HTTP.

В этом пошаговом руководстве показано, как настроить это с помощью диспетчера IIS: http://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85

Этот другой вопрос SO показывает, как это сделать с помощью PowerShell: Добавление пользовательских полей журналирования IIS 8.5 с помощью Powershell

2 голосов
/ 04 мая 2009

Сети F5 предлагают ISAPI-фильтр на devcentral.f5.com, который примет x-forwarded-for и будет использовать его в журналах.

Помимо этого, вы мало что можете сделать - так работает TCP. :)

0 голосов
/ 27 ноября 2015

Расширенное ведение журнала IIS 8.5 позволяет легко регистрировать заголовок X-FORWAREDED-FOR.

IIS 8.5 Advanced Logging

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