2012-08-28 63 views

回答

9

看起來像varnishlog未指向正確的目錄,或者無法訪問它。

請檢查varnishd的命令行選項。如果deamon以-n <instancename>參數運行,則必須將其添加到varnishlog以及。

第二件事,就是看清漆目錄的權限。 爲了看到當前使用的目錄,你必須登錄到根目錄並運行以下命令:

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

一旦發現,你只是要確保完整路徑具有讀取權限的用戶。

0

我剛剛嘗試發出varnishadm命令時有相同的錯誤消息。原來,我沒有停止清漆我的機器改名。 varnish/varnish /中的某個目錄對應於varnish需要訪問的計算機名稱。 「sudo service varnish restart」爲我解決了這個問題。

2

在我們的案例中,服務器的主機名已被更改。

如果您未指定實例名稱,varnish將使用主機名。它正在尋找一個包含新主機名的共享內存日誌記錄配置的目錄,但該實例仍舊從具有舊主機名的目錄運行。

重新開始清漆解決了問題。

5

清漆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可以從油漆組或只有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。