Получение клиентского 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.