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

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

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

Вот что я пробовал:

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

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

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

Не работает.

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

Не работает.

я проверил Фильтрация varnishlog v4, https://varnish-cache.org/docs/trunk/reference/vsl-query.html - но не смог разобраться.

Причина почему 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'"