清漆缓存日志无法正常工作

Cha*_*ies 11 varnish

varnishlog正在返回:

_.vsm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有人见过这个?

Doo*_*day 11

看起来varnishlog没有指向正确的目录,或者没有访问它.

请检查varnishd的命令行选项.如果deamon使用-n <instancename>参数运行,则必须将其添加到varnishlog.

第二件事,就是看到varnish目录的权限.要查看当前使用的目录,您必须登录到root并运行以下命令:

$ lsof -p <PID of varnishd> | grep vsm
Run Code Online (Sandbox Code Playgroud)

一旦显示,您只需确保完整路径具有您的用户的读取权限.


ipe*_*cks 8

在Varnish 4.1中,根本原因可能是由于读取_.vsm文件的权限不正确.例如:

# service varnishncsa start
 * Starting HTTP accelerator log deamon                                                                                                                                                               [fail] 
Can't open log - retrying for 5 seconds
Can't open VSM file (Cannot open /var/lib/varnish/dev-me/_.vsm: Permission denied
Run Code Online (Sandbox Code Playgroud)

Varnishncsa来自varnishlog用户.但/var/lib/varnish/dev-me/_.vsm只能从清漆组或root用户读取:

# ls -l /var/lib/varnish/dev-me/_.vsm
-rw-r----- 1 root varnish 84934656 Apr 15 05:58 /var/lib/varnish/dev-me/_.vsm
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过以下方式解决此问题:

# usermod -a -G varnish varnishlog
# id varnishlog
uid=110(varnishlog) gid=116(varnishlog) groups=116(varnishlog),115(varnish)
Run Code Online (Sandbox Code Playgroud)

现在你可以开始varnishncsa了.