HAProxy FrontEnd 的 IP 已添加到标头

HAProxy FrontEnd 的 IP 已添加到标头

使用 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']

相关内容