응답을 받은 백엔드의 http 응답 헤더에 바니시가 반환되도록 하려면 어떻게 해야 합니까?

응답을 받은 백엔드의 http 응답 헤더에 바니시가 반환되도록 하려면 어떻게 해야 합니까?

백엔드에는 라운드 로빈 디렉터가 있는 3개의 서버가 있습니다.

응답을 가져온 서버의 이름이나 IP를 사용하여 X-Server-By 헤더를 varnish에 작성하고 싶습니다. 어떻게 해야 합니까?

답변1

Varnish 3.0.2에서는 다음을 사용합니다.

sub vcl_fetch {
    set beresp.http.X-Backend = beresp.backend.name;
}

완벽하게 작동합니다.

답변2

sub vcl_fetch {
    set obj.http.X-Backend = req.backend;
}

내 (라운드 로빈이 아닌) 설정에서 2.0.6에서 테스트되었습니다. 그것은 당신에게 계속할 무언가를 제공해야합니다.

답변3

웹 서버에서 헤더를 설정할 수 있습니다(예: x-host: server2). 그런 다음 varnish는 캐시 히트에 대한 응답의 일부로 이를 반환합니다.

나는 이것을 아파치에서 작업하고 있으며 완벽하게 작동합니다.

답변4

다음은 테스트되지 않았지만 시작하는 데 도움이 될 수 있습니다.

sub vcl_deliver {
    set resp.http.X-Served-By = server.hostname;
    deliver;
}

관련 정보