Получение клиентского IP с использованием PHP с балансировщиком нагрузки (заголовок X-Forwarded-For)

Вот моя ситуация: у меня есть сайт PHP, настроенный с IIS 7 и балансировщик нагрузки F5. Мне нужно получить IP-адрес клиента, который обращается к серверу.

Как и следовало ожидать в этом сценарии, $_SERVER['REMOTE_ADDR'] возвращает IP-адрес балансировщика нагрузки, а не фактический клиентский ПК. Как правило, я знаю, что $_SERVER['HTTP_X_FORWARDED_FOR'] будет переменной, которая будет возвращать фактический IP-адрес клиентского ПК, но по какой-либо причине он здесь пуст. Другими словами, возвращая X-Forwarded-For заголовок ничего не возвращает - что мне здесь делать?

0 ответов

Как добавить заголовок X-Forwarded-For и настроить ведение журнала IIS

Поле HTTP-заголовка X-Forwarded-For (XFF) - это стандартный метод определения исходного IP-адреса клиента, подключающегося к серверу через Kemp LoadMaster или любой прокси-сервер.

Kemp LoadMaster позволяет нам передавать IP-адрес клиента реальному серверу назначения, вставляя заголовок X-Forwarded-For, когда Layer7 используется с непрозрачностью.

Вставка заголовка X-Forwarded-For позволяет Real Server регистрировать исходный IP-адрес клиента в своих журналах.

Добавление заголовка X-Forwarded-For с помощью LoadMaster может быть выполнено либо как глобальная настройка, либо как настройка для каждой виртуальной службы. Обратитесь к соответствующему разделу ниже, чтобы узнать, как добавить заголовок.

Примечание. Добавление заголовка X-Forwarded-For доступно только для трафика HTTP и HTTPS с разгрузкой SSL.

Глобальная настройка дополнительного заголовка X-Forwarded-For

В главном меню пользовательского интерфейса (UI) LoadMaster выберите Конфигурация системы> Разные параметры> Конфигурация L7> Дополнительный заголовок L7> X-Forwarded-For.

Настройка дополнительного заголовка X-Forwarded-For для виртуальной службы

В главном меню LoadMaster WUI выберите Virtual Services > View/Modify Services. Щелкните Изменить в соответствующей виртуальной службе. Разверните раздел "Дополнительные свойства". В раскрывающемся списке "Добавить заголовки HTTP" выберите X-Forwarded-For (без перехода) или X-Forwarded-For (+ Via).

Настройка настраиваемых полей журнала IIS на Microsoft Server 2012

В IIS 8.5 и более поздних версиях можно добавить настраиваемые поля ведения журнала для записи заголовков X-Forwarded-For для записи исходного IP-адреса клиента, когда прозрачность не используется.

Перейдите на сайт, который будет использовать X-Forwarded-For logging, и нажмите Logging and Open Feature.

Нажмите кнопку Выбрать поля...

Щелкните опцию Добавить поле...

Настройте поля, как показано ниже:

Имя поля: X-Forwarded-For

Тип источника: заголовок запроса

Название источника: X-Forwarded-For (важен синтаксис)

Дважды щелкните ОК.

Нажмите Применить в правом верхнем углу страницы параметров ведения журнала.

Теперь сгенерируйте некоторый трафик журнала, перейдя к виртуальной службе и несколько раз нажав кнопку "Обновить".

Перейдите в папку с расширенными файлами журналов и откройте вновь созданные файлы журналов.

Расположение по умолчанию - C:\inetpub\logs\LogFiles\W3SVC1.

Другие вопросы по тегам