繁体   English   中英

清漆缓存日志不起作用

[英]Varnish Cache log not working

varnishlog返回:

_.vsm: No such file or directory

有人看过吗?

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

请检查varnishd的命令行选项。 如果守护程序使用-n <instancename>参数运行,则还必须将其添加到varnishlog中。

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

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

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

在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

Varnishncsa来自varnishlog用户。 但是/var/lib/varnish/dev-me/_.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。

在本例中,服务器的主机名已更改。

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

重启清漆解决了问题。

尝试发出varnishadm命令时,我遇到了同样的错误消息。 原来,我重命名了我的机器而没有停止清漆。 / var / varnish /中有一些目录与varnish需要访问的机器名称相对应。 “ sudo服务清漆重新启动”为我修复了此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM