logging - 如何设置 Varnish 日志记录?

标签 logging varnish

我想让 Varnish 记录请求。我找到了命令 varnishlog -a -w /var/log/varnish.log ,但它不会记录任何内容。

然后我发现Varnish默认是不写日志的。但是,我无法找到日志记录的配置选项。

最佳答案

如果你想在 NCSA Common Log Format 中记录 HTTP 请求您需要使用 varnishncsa .在 CentOS/RedHat 上,Varnish RPM 包包含一个 varnishncsa init 脚本,您可以使用它来启动日志记录。默认情况下,它登录到 logfile="/var/log/varnish/varnishncsa.log" .

此外,如果您希望通过单个 Varnish 安装为多个不同的主机提供服务,您还需要在日志中包含主机名。这可以通过 /etc/sysconfig/varnishncsa 中的以下设置来完成

DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'"

请注意,Anshu 链接中描述的方法仅记录 Varnish 传递到后端服务器的请求。缓存命中请求永远不会被记录(在 Varnish 5.0 之前 - 见下文)。因此,以这种方式收集的 HTTPD 日志不能用于统计分析。

更新:正如@VikrantPogula 所提到的,从 Varnish 5.0 开始,所有客户端请求都会被记录下来——包括缓存命中。这是默认行为,可以使用 -c 显式打开转变。

关于logging - 如何设置 Varnish 日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705252/

相关文章:

varnish - 修改Varnish默认文件后出现Err_Connection_Refused

http-headers - 如何设置 Varnish 缓存控制 header

c++ - boost 日志旋转文件 - 超出大小

java - 避免在 jboss 控制台上打印 hibernate 日志

go - 使用zap时如何自定义日志格式?

varnish - 如何在varnish中调试VCL?

apache - Varnish 的优雅关闭

java - 错误 - 无法使用 log4j 记录

python - Django如何关闭警告

cloud - 在 Varnish 反向代理中使用具有多个 IP 的域名