安装配置好并启动varnish之后,使用了varnishlog命令出现错误提示Cannot open /usr/local/varnish/var/varnish/test.localdomain/_.vsm: No such file or directory

160523412.jpg

用# ls /usr/local/varnish/var/varnish查看发现目录下连test.localdomain这个目录都没有

解决办法1:

如果你启动varnishd时使用了-n <instancename> 的选项,那么使用varnishlog也一定要加上-n <instancename>

注:如果你不知道是否加了-n的选项而且是用servcie varnishd start或者/etc/init.d/varnishd start启动的,cat /etc/init.d/varnishd|more 看下。

解决办法2:

1.用ps -ef |grep varnishd查看下varnishd的pid

160700965.jpg

可以看到我这里有两个varnishd进程,因为我在varnish的配置文件中设置的varnishd的执行用用户是www,所以这里应该是2563

2,使用lsof -p <varnishd的PID> | grep vsm查看_vsm的实际路径

前一步中已经知道的我的varnishd的PID是2563,所以我在这里的命令是lsof -p 2563 |grep vsm

3.mkdir /usr/local/varnish/var/varnish/test.localdomain/

注:这里的test.localdomain应该是你错误提示中的主机名

4.创建一个软链接,链接到上面查看到的_.vsm的路径

# ln -s /var/log/varnish/_.vsm /usr/local/varnish/var/varnish/test.localdomain/_.vsm

5.执行# ./varnishlog

再访问varnish的http代理服务就可以看到日志了

162612148.jpg


参考:http://stackoverflow.com/questions/12165818/varnish-cache-log-not-working