Я использую 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