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

varnishncsa не регистрирует пользовательские заголовки

Я использую Varnish 3.0.2 в системе Debian Wheezy. Я хотел бы иметь возможность устанавливать собственные заголовки и отображать их содержимое в журналах запросов. Однако, хотя я знаю, что заголовки устанавливаются и передаются в серверную часть, их содержимое не кажется видимым для varnishncsa.

В моем vcl_recv у меня есть

set req.http.X-my-header = "blahblah";

и для тестирования это моя строка настраиваемого формата для varnishncsa:

'%{X-my-header}i'

Я должен увидеть blahblah в журнале по каждому запросу. Однако все, что я получаю, это -. Кажется, мой заголовок не передается в varnishncsa.

Как я могу включить собственные заголовки в свои журналы?

Я только что столкнулся с этой проблемой, и это был лучший результат при ее поиске, поэтому я опубликую здесь свое решение / обходной путь для дальнейшего использования :)

varnishncsa может регистрировать значения, установленные std.log("key:value") в VCL 1. Я использовал это для регистрации своего собственного заголовка. Используя ваш пример, добавьте это в свой vcl_recv:

set req.http.X-my-header = "blahblah";
std.log("X-my-header:" + req.http.X-my-header);

Затем используйте следующее где-нибудь в строке формата журнала для varnishncsa (обратите внимание на x вместо i после имени заголовка):

%{VCL_Log:X-my-header}x