Назад | Перейти на главную страницу

Как заставить varnish возвращаться в заголовке HTTP-ответа, с какого серверного модуля был получен ответ?

У меня есть три сервера в бэкэнде с круговым директором.

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

В Varnish 3.0.2 я использую:

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

Прекрасно работает.

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

Протестировано на 2.0.6 в моей (не циклической) настройке. Это должно дать вам повод для продолжения.

Вы можете установить заголовок на своем веб-сервере, например x-host: server2, а затем varnish вернет его как часть ответа на попадание в кеш.

У меня это работает над apache, и он отлично работает.

Следующее не проверено, но может помочь вам начать:

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