IP de HAProxy FrontEnd agregada al encabezado

IP de HAProxy FrontEnd agregada al encabezado

Usando HAProxy 1.5, ¿es posible agregar un encabezado de solicitud cuyo valor sea la dirección IP utilizada por una interfaz cuyo enlace usa un comodín?

Por ejemplo, dada la siguiente configuración, ¿hay algo con lo que pueda reemplazar "%[fe_id]" para obtener la dirección IP variable que se usó para conectarme al frontend?

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

Respuesta1

Me lo imaginé. No estoy seguro de cómo me perdí esto, pero la variable es "dst". Entonces la configuración resultante se vería así:

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

De esta forma podemos ver si la solicitud vino desde dentro o fuera de nuestra red y el servidor web puede adaptarse en consecuencia.

Además, acceder a esta variable con PHP es tan sencillo como utilizar el array $_SERVER con la clave "HTTP_X_FRONTEND_IP".

$_SERVER['HTTP_X_FRONTEND_IP']

información relacionada