[server] HAProxy-X-Client-IP 및 X-Forwarded-For 헤더에 클라이언트 IP를 추가하는 방법은 무엇입니까?

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)]


답변

백엔드 서버에 mod_rpaf라는 모듈을 설치할 수 있습니다. X-FORWARDED-FOR IP가 X-CLIENT-IP에 복사됩니다. 자세한 내용은 이것을 참조 하십시오 . Windows에서는 X-Forwarded-For ASAPI 필터와 같은 유사한 모듈이 있어야합니다.


답변