IP des HAProxy-FrontEnds zum Header hinzugefügt

IP des HAProxy-FrontEnds zum Header hinzugefügt

Ist es mit HAProxy 1.5 möglich, einen Anforderungsheader hinzuzufügen, dessen Wert die IP-Adresse ist, die von einem Frontend verwendet wird, dessen Bind ein Platzhalterzeichen verwendet?

Gibt es beispielsweise bei der folgenden Konfiguration etwas, durch das ich „%[fe_id]“ ersetzen kann, um die variable IP-Adresse zu erhalten, die für die Verbindung mit dem Frontend verwendet wurde?

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

Antwort1

Ich habe es herausgefunden. Ich weiß nicht genau, wie ich das übersehen konnte, aber die Variable ist „dst“. Die resultierende Konfiguration würde also folgendermaßen aussehen:

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

Auf diese Weise können wir erkennen, ob die Anfrage von innerhalb oder außerhalb unseres Netzwerks kam und der Webserver kann sich entsprechend anpassen.

Darüber hinaus ist der Zugriff auf diese Variable mit PHP ganz einfach: Verwenden Sie einfach das Array $_SERVER mit dem Schlüssel „HTTP_X_FRONTEND_IP“.

$_SERVER['HTTP_X_FRONTEND_IP']

verwandte Informationen