У меня проблема с HAProxy сервером. Я хочу перенаправить в заголовок клиентский IP. Я почти сделал это, но есть интересный случай, и я не могу понять это. Мне нужно написать клиентский IP в 2 местах в заголовке, в тегах X-CLIENT-IP и X-FORWARDED-FOR.
Проблема: когда я использую
option http-server-close
option forwardfor
На целевом сервере я вижу в заголовке X-FORWARDED-FOR = xxx.xxx.xxx.xxx (ip клиента), но заголовка x-client-ip нет.
Когда я использую:
option forwardfor header X-Client-IP
option http-server-close
На целевом сервере я вижу заголовок X-CLIENT-IP = xxx.xxx.xxx (IP-адрес клиента), но X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip)
Мне нужно видеть на целевом заголовке, где X-CLIENT-IP и X-FORWARDED-FOR имеют значение клиентского IP.
Я пытаюсь смешивать конфигурации, как
option forwardfor
option forwardfor header X-Client-IP
option http-server-close
Нет эффекта. Я не могу также установить любые модули. Цель - IIS.
Есть идеи? :(
Если вы хотите использовать оба, вам нужно добавить второе с
http-request
ключевым словом.источник
X-CLIENT-IP
это не устанавливается клиентом, а скорее HAProxy на основе исходного IP. Я хотел бы предложить оставить эти комментарии по вопросам , где это Релевент так, чтобы не читателям путайте.add-header
не удаляет то,X-CLIENT-IP
что могло быть установлено клиентом. Вот почему @Der_Meister рекомендовал использоватьset-header
вместо этого. Я предлагаю изменить ваш ответ, чтобы использоватьset-header
вместо этого.Предложенный выше ответ, который не работал для KacproSo, просто нужно было прочитать значение, добавив
&[...]
, так что это должно работать нормально:источник
При использовании HAproxy 1.7 это правильный синтаксис, который делает эту работу без квадратных скобок вокруг X-Forwarded-For
источник
Вы можете установить модуль с именем mod_rpaf на ваш внутренний сервер. Это копирует X-FORWARDED-FOR IP в X-CLIENT-IP. Для получения дополнительной информации см. Это . В Windows у вас должны быть похожие модули, что-то вроде фильтров X-Forwarded-For ASAPI.
источник