HAProxy 1.5를 사용하면 바인드가 와일드카드를 사용하는 프런트엔드에서 사용하는 IP 주소 값을 갖는 요청 헤더를 추가할 수 있습니까?
예를 들어, 다음 구성에서 프런트엔드에 연결하는 데 사용된 변수 IP 주소를 가져오기 위해 "%[fe_id]"를 대체할 항목이 있습니까?
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로 이 변수에 접근하는 것은 "HTTP_X_FRONTEND_IP" 키와 함께 $_SERVER 배열을 사용하는 것만큼 간단합니다.
$_SERVER['HTTP_X_FRONTEND_IP']