Mam problem z serwerem HAProxy. Chcę przekazać w nagłówku adres IP klienta. Prawie to zrobiłem, ale jest ciekawy przypadek i nie mogę tego rozgryźć. Muszę napisać adres IP klienta w 2 miejscach w nagłówku, w tagach X-CLIENT-IP i X-FORWARDED-FOR.
Problemem jest: kiedy używam
option http-server-close
option forwardfor
Na serwerze docelowym widzę w nagłówku X-FORWARDED-FOR = xxx.xxx.xxx.xxx (klient ip), ale nie ma nagłówka x-client-ip.
Kiedy używam:
option forwardfor header X-Client-IP
option http-server-close
Na serwerze docelowym widzę nagłówek X-CLIENT-IP = xxx.xxx.xxx (adres IP klienta), ale X-FORWARDED-FOR = xxx.xxx.xxx.xxx (HAProxy ip)
Muszę zobaczyć w nagłówku docelowym, gdzie X-CLIENT-IP i X-FORWARDED-FOR ma wartość adresu IP klienta.
Próbuję łączyć konfiguracje jak
option forwardfor
option forwardfor header X-Client-IP
option http-server-close
Bez wpływu. Nie mogę również zainstalować żadnych modułów. Celem jest IIS.
Jakieś pomysły? :(
Jeśli chcesz używać obu, musisz dodać drugi ze
http-request
słowem kluczowym.źródło
X-CLIENT-IP
klient nie ustawia tej wartości, a raczej HAProxy na podstawie źródłowego adresu IP. Sugeruję pozostawienie tych komentarzy w pytaniach, w których jest to właściwe, aby nie mylić czytelników.add-header
nie usuwaX-CLIENT-IP
ustawień, które mogły zostać ustawione przez klienta. Dlatego @Der_Meister zaleca użycieset-header
zamiast tego.set-header
Zamiast tego sugeruję edycję odpowiedzi .Sugerowana odpowiedź powyżej, która nie zadziałała dla KacproSo, po prostu trzeba było odczytać wartość dodając
&[...]
, więc powinno to działać dobrze:źródło
Próbowanie na HAproxy 1.7 to poprawna składnia, która sprawia, że działa, bez kwadratowych hamulców wokół X-Forwarded-For
źródło
Możesz zainstalować moduł o nazwie mod_rpaf na swoich serwerach zaplecza. Spowoduje to skopiowanie X-FORWARDED-FOR IP na X-CLIENT-IP. Aby uzyskać więcej informacji, zobacz to . W systemie Windows powinieneś mieć podobne moduły, coś w rodzaju filtrów X-Forwarded-For ASAPI.
źródło