基本的清漆 4.0 設定似乎不起作用

基本的清漆 4.0 設定似乎不起作用

[顯然我正在以 root 身份運行 varnishd]

現在,我明白了:

[gideon@mywebsite ~]$ sudo varnishd -f /etc/varnish/default.vcl -s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:8000 -d
[sudo] password for gideon: 
Platform: Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
200 284     
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
varnish-3.0.7 revision f544cd8

我有一個非常簡單的設定。 Perl Webapp 正在運行0.0.0.0:5000,我想要 varnish 來快取它。該系統是一個虛擬的“水滴”(或虛擬機器)上http://www.digitalocean.com。該機器是一個CentOS盒子

裡面/etc/sysconfig/varnish/我有:

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -u varnish -g varnish \
             -S /etc/varnish/secret \
             -s malloc,128m"

裡面/etc/varnish/default.vcl我有:

backend default {
  .host = "0.0.0.0";
  .port = "5000";
}

我嘗試了很多事情但沒有運氣。 (重新啟動、替代配置等)我可以透過 website.com:5000 存取我的應用程式。

這是我使用時得到的varnishd

$varnishd -f /etc/varnish/default.vcl 
                    -s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:80 -d
Failed to create ./vcl.jAoXC8Rf.c: Permission denied

我嘗試搜尋各種帖子,(一些在舊金山)都導致死胡同或完全不同情況的解決方案。

我敢打賭,我做錯了一些非常基本的事情,但我什至已經到了殺死我的機器的地步,從一個乾淨的虛擬機開始,安裝perl 和我需要的模組,然後讓我的應用程序運行,然後安裝BASIC varnish從文件中進行設定。我做了兩次!

任何幫助和指示將不勝感激。

答案1

backend default {
  .host = "0.0.0.0";
  .port = "5000";
}

這是你的問題。您不能在 0.0.0.0 處擁有後端。您可能想改用 127.0.0.1。

(0.0.0.0 用於告訴系統偵聽任何 IP 的連接,但不是要連接的有效 IP)

編輯:好的,我回答得太快了。這不會解決權限問題。你稍等一會兒。

Edit2:好的,重讀我發現您修復了權限問題,所以我的解決方案應該修復無法工作的後端。

答案2

varnish 編譯 vcl 的目錄的權限,Ubuntu 使用 /var/lib/varnish/ 嘗試 chmod 666 -R /var/lib/varnish/

從上面的程式碼來看,您沒有以 root 身分執行,請嘗試以 root 身分或使用 sudo 進行測試。如果有效,那麼權限就是問題。

相關內容