Ubuntu 18.04 に Varnish 5.2.1 をインストールし、チュートリアルに従ってポート 80 に配置しようとしていますが、機能しません。
まず、sudo service varnish stop を使用して Varnish を停止します。
次に、/etc/varnish/default.vcl を編集してターゲット ポートを変更します。
backend default {
.host = "127.0.0.1";
.port = "8080";
}
次に、/etc/systemd/system/varnish.service.d/customexec.conf を作成して、Varnish を実行するポートを指定します。
[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
そして、Varnish を再起動します。
sudo systemctl daemon-reload
sudo service varnish status
しかし、sudo サービス ワニスのステータスを確認すると、次のようになります。
● varnish.service - Varnish HTTP accelerator
Loaded: loaded (/lib/systemd/system/varnish.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/varnish.service.d
└─customexec.conf
Active: inactive (dead) since Thu 2020-09-03 11:55:26 BST; 37s ago
Docs: https://www.varnish-cache.org/docs/4.1/
man:varnishd
Process: 20459 ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256
Main PID: 20459 (code=exited, status=0/SUCCESS)
Sep 03 11:55:24 me systemd[1]: Started Varnish HTTP accelerator.
Sep 03 11:55:25 me varnishd[20459]: Debug: Platform: Linux,4.15.0-115-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit
Sep 03 11:55:25 me varnishd[20462]: Platform: Linux,4.15.0-115-generic,x86_64,-junix,-smalloc,-smalloc,-hcritbit
Sep 03 11:55:25 me varnishd[20459]: Debug: Child (20474) Started
Sep 03 11:55:25 me varnishd[20462]: Child (20474) Started
Sep 03 11:55:25 me varnishd[20462]: Child (20474) said Child starts
Sep 03 11:55:25 me varnishd[20462]: Manager got SIGINT
Sep 03 11:55:25 me varnishd[20462]: Stopping Child
Sep 03 11:55:26 me varnishd[20462]: Child (20474) died signal=15
Sep 03 11:55:26 me varnishd[20462]: Child cleanup complete
Varnish は、デフォルトのポート 6081 で実行すると正常に動作しますが、上記の手順を使用してポートを変更すると停止し続けます。 Apache などの他のすべての Web サーバーを停止したため、ポート 80 で既に実行されているものは何もありません。ワニスとの摩擦。
何が問題なのかをデバッグするにはどこから行えばよいのかわかりません。なぜこれが起こるのか知っている人はいますか?
------------------------
解決策を見つけました。
次の行を /etc/systemd/system/varnish.service.d/customexec.conf に置く代わりに:
ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
代わりに次の行を使用します。
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
新しいコマンドは、正常に実行された場合の sudo サービス バーニッシュ ステータスで見つかったものです。
公式ドキュメントの冒頭に -j unix,user=vcache -F の部分が含まれていない理由はわかりませんが、何らかの理由で、これは Varnish を作成するために使用する必要があるコマンドのデフォルトの部分です仕事。
ドキュメントからの意味は次のとおりです。
-j <jail[,jailoptions]>: 使用するジェイル化メカニズムを指定します。
-F: 分岐せず、フォアグラウンドで実行します。