登录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 。