varnishlog - как регистрировать только определенные пути?

Я хочу регистрировать все запросы к статическим страницам в определенном каталоге через varnishlog .

Это то, что я пробовал:

varnishlog -c -q "ReqURL ~ '.*version15.*'"

Работает, но я хочу еще ограничить его.

varnishlog -c -q "ReqURL ~ '.*static.*version15.*'"

Не работает.

varnishlog -c -q "ReqURL ~ '/static/version15/tpl/my_template.html"

Не работает.

Я проверил Filtering varnishlog v4 , https://varnish-cache.org/docs/trunk/reference/vsl-query.html - но не смог вычислить это из.

0
задан 25 June 2019 в 01:38
1 ответ

Причина, по которой varnishlog -c -q "ReqURL ~ '/static/version15/tpl/my_template.html" не работает, заключается в том, что вы забыли ] одинарная кавычка в конце, закрывающая строку .

Это ошибка, которую я получаю:

Query expression error:
Unterminated string (Pos 49)
ReqURL ~ '/static/version15/tpl/my_template.html

Это команда, которая должна работать для вас:

varnishlog -c -q "ReqURL ~ '/static/version15/tpl/my_template.html'"

Я смоделировал вызов на тестовой установке, и она работает нормально.

Команда, которую вы пытаетесь запустить, соответствует явному URL-адресу, но на самом деле ваш вопрос касался сопоставления статических файлов в каталоге. Я предлагаю использовать что-то вроде этого:

varnishlog -g request -q "ReqUrl ~ '/static/version15/tpl/.*\.html'"
1
ответ дан 20 February 2020 в 07:17

Теги

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