Haproxy

HAProxy - 如何在 X-Client-IP 和 X-Forwarded-For 標頭中附加客戶端 IP?

  • June 13, 2020

我的 HAProxy 伺服器有問題。我想在標頭中轉發客戶端 IP。我幾乎做到了,但是有一個有趣的案例,我想不通。我需要在 X-CLIENT-IP 和 X-FORWARDED-FOR 標記的標頭中的 2 個位置寫入客戶端 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(client 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]

引用自:https://serverfault.com/questions/722151