HAProxy 서버에 문제가 있습니다. 클라이언트 IP를 헤더로 전달하고 싶습니다. 거의 다했지만 흥미로운 경우가 있으며 알아낼 수 없습니다. X-CLIENT-IP 및 X-FORWARDED-FOR 태그에서 헤더의 두 위치에 클라이언트 IP를 작성해야합니다.
문제는 내가 사용할 때
option http-server-close
option forwardfor
대상 서버에서 헤더 X-FORWARDED-FOR = xxx.xxx.xxx.xxx (client 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 set-header X-Client-IP %[src]
또는 X-Forwarded-For 헤더에서 복사 할 수도 있습니다. 구문은 다음과 같습니다.
http-request set-header X-Client-IP req.hdr_ip([X-Forwarded-For])
답변
두 가지를 모두 사용하려면 http-request
키워드를 사용 하여 두 번째를 추가해야 합니다.
# add X-FORWARDED-FOR
option forwardfor
# add X-CLIENT-IP
http-request add-header X-CLIENT-IP %[src]
답변
Kacpro에서는 작동하지 않는 위의 제안 된 답변 따라서을 추가하여 값을 읽으면 &[...]
되었으므로 제대로 작동합니다.
http-request set-header X-Client-IP %[req.hdr_ip([X-Forwarded-For])]
답변
HAproxy 1.7을 시도하면 이것이 X-Forwarded-For 주변의 사각형 브레이크 없이이 작업을 수행하는 올바른 구문입니다
http-request set-header X-Client-IP %[req.hdr_ip(X-Forwarded-For)]