HAProxy FrontEnd의 IP가 헤더에 추가됨

HAProxy FrontEnd의 IP가 헤더에 추가됨

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

관련 정보