Varnish 清漆缓存日志不工作

Varnish 清漆缓存日志不工作,varnish,Varnish,varnishlog正在返回: _.vsm: No such file or directory 以前有人见过这个吗 看起来varnishlog没有指向正确的目录,或者无法访问该目录 请检查varnishd的命令行选项。如果deamon使用-n参数运行,则还必须将其添加到varnishlog中 第二件事,是查看varnish目录的权限。 要查看当前使用的目录,必须登录到root并运行以下命令: $ lsof -p <PID of varnishd> | grep vsm $lso

varnishlog正在返回:

_.vsm: No such file or directory

以前有人见过这个吗

看起来varnishlog没有指向正确的目录,或者无法访问该目录

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

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

$ lsof -p <PID of varnishd> | grep vsm
$lsof-p | grep-vsm

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

在尝试发出varnishadm命令时,我收到了相同的错误消息。结果是我没有停止清漆就重新命名了我的机器。/var/varnish/中有一些目录对应于varnish需要访问的机器名。“sudo service varnish restart”为我修复了这个问题。

在我们的例子中,服务器的主机名已更改

如果未指定实例名称,varnish将使用主机名。它正在寻找一个包含新主机名的共享内存日志记录配置的目录,但该实例仍在使用旧主机名的目录中运行


重新启动varnish解决了问题。

在varnish 4.1中,根本原因可能是由于读取
\uuuu.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
Varnishncsa由
varnishlog
用户操作。但是,
/var/lib/varnish/dev me/u.vsm
只能从varnish组或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
因此,您可以通过以下方式解决此问题:

# usermod -a -G varnish varnishlog
# id varnishlog
uid=110(varnishlog) gid=116(varnishlog) groups=116(varnishlog),115(varnish)
现在你可以开始使用varnishncsa了