Можно ли с помощью 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
Таким образом, мы можем увидеть, пришел ли запрос из нашей сети или извне, и веб-сервер может соответствующим образом адаптироваться.
Более того, для доступа к этой переменной с помощью PHP достаточно использовать массив $_SERVER с ключом «HTTP_X_FRONTEND_IP».
$_SERVER['HTTP_X_FRONTEND_IP']