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

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

В моем vcl_recv Я имею

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

и для тестирования это - моя пользовательская строка формата для varnishncsa:

'%{X-my-header}i'

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

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

2
задан 9 June 2014 в 13:45
2 ответа

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

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

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

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

%{VCL_Log:X-my-header}x
1
ответ дан 3 December 2019 в 12:52

Я думаю, что в Varnish Book есть ошибка, когда дело доходит до объяснения того, как регистрировать заголовки. Попробуйте следующее:

varnishncsa -F '<%{age}o> <%{x-cache}o> %U %s'
0
ответ дан 5 January 2022 в 10:42

Теги

Похожие вопросы