如何查看 Varnish 的 hash_data() 的内容?

ran*_*gfu 2 varnish varnish-vcl

我知道在 Varnish 中,您可以根据文档使用 vcl_hash 中的 hash_data() 将数据添加到缓存哈希

出于调试目的,我希望能够看到构成哈希的任何内容的全部内容。

例如,如果我们可以这样做,那将非常有用:

 # This won't work:
 set req.http.X-DEBUG = "HASH-DATA:" + hash_data();
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否可能?

cie*_*cia 8

您通常可以使用varnishlog命令查看它。

但是,从 varnish 5 开始,您需要在日志输出中专门启用散列。这可以通过该varnishadm实用程序完成:

执行varnishadm并在它启动的提示下键入:

varnish> param.set vsl_mask +Hash
Run Code Online (Sandbox Code Playgroud)

您可以通过键入退出 shell quit,然后varnishlog再次运行,它现在应该显示每个请求使用的哈希值。


Deb*_*rás 1

varnishlog正确解释特定请求使用哪些哈希数据。

您可以将 varnishlog 输出重定向到您的自定义文件以供进一步查看:

varnishlog > my-log.log
Run Code Online (Sandbox Code Playgroud)

  • Varnish 5 似乎不再出现这种情况。我是否应该使用 varnishlog 查看哈希数据,因为除了对 HASH 的 VCL_call 和 VCL_return 哈希之外,我没有看到任何其他内容。没有名为 Hash 的可用标签。 (4认同)