Как заставить Varnish возвращать в заголовке ответа http информацию о том, с какого бэкенда он получил ответ?

Как заставить Varnish возвращать в заголовке ответа http информацию о том, с какого бэкенда он получил ответ?

У меня три сервера на бэкэнде с циклическим директором.

Я хотел бы, чтобы Varnish записал заголовок X-Server-By с именем или IP-адресом сервера, с которого был получен ответ. Как это можно сделать?

решение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 вернет его как часть ответа на обращение к кэшу.

У меня это работает на Apache и отлично.

решение4

Следующие рекомендации не тестировались, но могут помочь вам начать:

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

Связанный контент