varnishlog - 如何仅记录某些路径?

varnishlog - 如何仅记录某些路径?

我想通过记录对某个目录中静态页面的所有请求varnishlog

这是我尝试过的:

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

有效-但我想进一步限制它。

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

不起作用。

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

不起作用。

我检查过过滤 varnishlog v4https://varnish-cache.org/docs/trunk/reference/vsl-query.html- 但没能弄清楚。

答案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'"

相关内容