登录Varnish

Varnish的一个非常好的特性是日志记录的工作方式。Varnish不是记录到正常的日志文件,而是记录到一个共享内存段,称为VSL-Varnish共享日志。当到达段的末尾时,我们重新开始,覆盖旧数据。

这比记录到文件快得多,而且不需要磁盘空间。此外,它会在你需要的时候给你更多、更多的信息。

另一方面,如果您忘记让程序真正将日志写入磁盘,它们将被覆盖。

varnishlog 是可以用来查看Varnish正在记录的内容的程序之一。 varnishlog 为您提供原始日志,即写入日志的所有内容。还有其他客户端也可以访问日志,我们稍后将向您展示这些。

在终端窗口中,您启动了Varnish now,输入 varnishlog -g raw 然后按Enter键。

您将看到这样的行慢慢地滚动过去。::

0 CLI            - Rd ping
0 CLI            - Wr 200 19 PONG 1273698726 1.0

这是Varnish主进程检查缓存进程以查看是否一切正常。

现在转到浏览器并重新加载显示您的Web应用程序的页面。

您将看到这样的行。::

11 SessOpen       c 127.0.0.1 58912 :8080 0.0.0.0 8080 1273698726.933590 14
11 ReqStart       c 127.0.0.1 58912
11 ReqMethod      c GET
11 ReqURL         c /
11 ReqProtocol    c HTTP/1.1
11 ReqHeader      c Host: localhost:8080
11 ReqHeader      c Connection: keep-alive

第一列是一个任意数字,它标识事务。具有相同编号的行来自同一事务处理。第二列是 tag 日志消息的。所有日志条目都用一个标签来标记,该标签指示正在记录的活动类型。

第三列告诉我们这是来自或去往客户端(‘c’)或后端(‘b’)的数据。第四列是正在记录的数据。

现在,您可以使用以下工具进行过滤 varnishlog 。我们认为您想知道的基本选项包括:

‘-b’

仅显示Varnish和后端服务器之间的流量的日志线。当我们想要优化缓存命中率时,这将非常有用。

‘-c’

与‘-b’相同,但用于客户端流量。

‘-g请求’

按请求对交易记录进行分组。

‘-Q查询’

仅列出与此查询匹配的交易记录。

有关此主题的更多信息,请参阅 Varnishlog