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

How can I view the contents of Varnish's hash_data()?

我知道在 Varnish 中,您可以根据 docs.

在 vcl_hash 中使用 hash_data() 将数据添加到缓存哈希

出于调试目的,我希望能够看到构成哈希的所有内容。

例如,如果我们能做到,那将非常有用:

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

有人知道这是否可行吗?

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

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

varnishlog > my-log.log

一般用varnishlog命令就可以看到

但是,从 varnish 5 开始,您需要在日志输出中专门启用哈希。这可以通过 varnishadm 工具来完成:

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

varnish> param.set vsl_mask +Hash

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