如何在 Linux Alpine 上设置 Varnish 日志记录?

How to setup Varnish logging on Linux Alpine?

我知道默认情况下未启用 Varnish 日志记录,它是通过 varnishncsa 启用的,网上有很多关于如何设置它的文章,但 Linux Alpine 没有。我看到 configurations for it here。但不确定默认情况下是否运行任何日志记录服务。

如有任何帮助,我们将不胜感激。非常感谢

要启用信息日志,您需要启动以下命令:

/usr/bin/varnishncsa -q 'ReqURL ne "<url_which_should_be_not_logged>"' -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Varnish:hitmiss}x\"' -w /path/to/log_file

varnishd 启动后:

/usr/sbin/varnishd -s malloc,128M -a :80 -f /etc/varnish/default.vcl

如果我们谈论的是 docker 容器中的 Alpine,只需创建以下 entrypoint.sh 脚本:

#!/bin/bash

mkdir -p /var/lib/varnish/`hostname` && chown nobody /var/lib/varnish/`hostname`
/usr/sbin/varnishd -s malloc,128M -a :80 -f /etc/varnish/default.vcl

/usr/bin/varnishncsa -q 'ReqURL ne "<url_which_should_be_not_logged>"' -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Varnish:hitmiss}x\"'

并将其放在 Dockerfile:

的末尾
ENTRYPOINT ["/entrypoint.sh"]