基本的なvarnish 4.0のセットアップが機能していないようです

基本的なvarnish 4.0のセットアップが機能していないようです

[どうやら私はvarnishdをrootとして実行していたようです]

さて、私はこれを理解しました:

[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でキャッシュしたいのです。システムは仮想です。"滴"(またはVM)オン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

さまざまな投稿(SF 上のものも含む)を検索してみましたが、すべてが行き止まりか、まったく異なる状況に対する解決策に終わりました。

何か基本的な間違いをしているに違いありませんが、マシンを強制終了し、クリーンな VM から始めて、必要な perl とモジュールをインストールし、アプリを動作させてから、ドキュメントから BASIC varnish セットアップをインストールしました。これを 2 回も行いました。

どのようなご助力やご指摘も大変ありがたく思います。

答え1

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

これが問題です。バックエンドを 0.0.0.0 に置くことはできません。代わりに 127.0.0.1 を使用することをお勧めします。

(0.0.0.0 は、システムに任意の IP への接続をリッスンするように指示するために使用されますが、接続できる有効な IP ではありません)

編集: そうですね、答えるのが早すぎました。これでは権限の問題は解決しません。少し待ってください。

編集2: わかりました。もう一度読み返すと、権限の問題が解決されたようです。したがって、私の解決策で、動作しないバックエンドが修正されるはずです。

答え2

varnishがvclをコンパイルするディレクトリの権限。Ubuntuは/var/lib/varnish/を使用します。chmod 666 -R /var/lib/varnish/を試してください。

上記のコードでは、root として実行されていないため、root としてテストするか、sudo を使用してみてください。動作する場合は、権限に問題があります。

関連情報