使用HAProxy 1.5,是否可以新增一個請求標頭,其值是綁定使用萬用字元的前端所使用的IP位址?
例如,給定以下配置,是否需要替換“%[fe_id]”以取得用於連接到前端的可變 IP 位址?
frontend localhost
bind *:80
bind *:443 ssl crt /etc/ssl/ssl.pem
mode http
default_backend nodes
option forwardfor
backend nodes
mode http
balance roundrobin
http-request add-header X-FrontEnd-IP %[fe_id]
server web00 10.1.10.15:80 check
server web01 10.1.10.16:80 check
server web02 10.1.10.17:80 check
答案1
我想到了。不知道我是如何錯過這個的,但變數是“dst”。所以產生的配置將如下所示:
frontend localhost
bind *:80
bind *:443 ssl crt /etc/ssl/ssl.pem
mode http
default_backend nodes
option forwardfor
backend nodes
mode http
balance roundrobin
http-request add-header X-FrontEnd-IP %[dst]
server web00 10.1.10.15:80 check
server web01 10.1.10.16:80 check
server web02 10.1.10.17:80 check
這樣我們就可以看到請求是來自網路內部還是外部,而 Web 伺服器可以相應地進行調整。
此外,要使用 PHP 存取此變量,就像使用帶有“HTTP_X_FRONTEND_IP”鍵的 $_SERVER 數組一樣簡單。
$_SERVER['HTTP_X_FRONTEND_IP']