Varnish

varnishlog - 如何只記錄某些路徑?

  • February 20, 2020

我想通過varnishlog.

這是我嘗試過的:

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

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

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

不工作。

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

不工作。

我已經檢查了Filtering varnishlog v4https ://varnish-cache.org/docs/trunk/reference/vsl-query.html - 但無法弄清楚。

varnishlog -c -q "ReqURL ~ '/static/version15/tpl/my_template.html"不起作用的原因是因為您忘記了結尾的單引號來關閉您的 string

這是我得到的錯誤:

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

引用自:https://serverfault.com/questions/972732