ニスデーモンが構成されたポートで待機していない


11

私はubuntu 16.04にワニスをインストールしようとしています、

私はいくつかの記事を読みましたが、どれも機能していません。私が読んだことから、ubuntu 15.04以降、(systemdのため)ワニスの構成方法が変更されました。

今私は実際の混乱を持っていますがうまくいきません:


/ etc / default / varnish:

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

/etc/varnish/default.vcl(通常、127.0.0とポート8080を指すホストを指しますが、デバッグ目的で外部ドメインに変更しました)vcl 4.0;

# Default backend definition. Set this to point to your content server.
backend default {
    .host = "www.varnish-cache.org"; 
    .port = "80";
}

/etc/apache2/ports.conf

Listen 8080

grep -R 'ExecStart=/usr/sbin/varnishd' /etc/

/etc/systemd/system/varnish.service: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
/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
/etc/systemd/system/multi-user.target.wants/varnish.service: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

/lib/systemd/system/varnish.service:

  GNU nano 2.5.3                                                Fichier : /lib/systemd/system/varnish.service                                                                                                      

[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd

[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
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
ExecReload=/usr/share/varnish/reload-vcl
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true

[Install]
WantedBy=multi-user.target

service --status-all | grep varnish

 [ - ]  varnish
 [ + ]  varnishlog
 [ + ]  varnishncsa

sudo service varnish stop
sudo service varnish start

varnishサービスはをリッスンしていません。http://127.0.0.1:80/再起動する前に、listendを実行しますhttp://127.0.0.1:6081/が、機能しなくなります...これ以上何をすべきかわかりません...




編集:再起動後、何も機能しません、

私が行った場合 : systemctl status varnish

● varnish.service - Varnish HTTP accelerator
   Loaded: loaded (/etc/systemd/system/varnish.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/varnish.service.d
           └─customexec.conf
   Active: inactive (dead) since jeu. 2017-01-05 14:48:09 CET; 1s ago
     Docs: https://www.varnish-cache.org/docs/4.1/
           man:varnishd
  Process: 5077 ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 5077 (code=exited, status=0/SUCCESS)

janv. 05 14:48:09 xubuntu-16 systemd[1]: Started Varnish HTTP accelerator.

service --status-all | grep varnish

 [ - ]  varnish
 [ - ]  varnishlog
 [ - ]  varnishncsa

私がsudoした場合:varnishd -d -f /etc/varnish/default.vcl、その後start、すべてが正常に動作します... CLIを終了するまで


@Gerald Schneider応答のおかげで解決しました。私がしなければならなかったステップを投稿します:

sudo apt remove varnish
sudo apt-get purge varnish
# I manually remove the 3 files in created in /etc/systemd/system/*
sudo apt install varnish
sudo nano /lib/systemd/system/varnish.service # put the rigth conf
sudo nano /etc/varnish/default.vcl #put the rigth conf
sudo systemctl daemon-reload
sudo service varnish restart

そしてすべてがうまくいきます!魔法は/lib/systemd/system/varnish.serviceファイルにあり、私が見つけた他のオンラインリソースは他の場所にあると思い込ませたので、オンライン(古い)チュートリアルに注意してください!


おそらく、以前のドロップを削除するためにのみ必要です->。/etc/systemd/system/varnish.service
Mike Q

回答:


17

systemdサービス定義のワニス開始パラメーターも変更する必要があります。ExecStartサービス定義ファイルで始まる行を編集できます。

sudo vi /lib/systemd/system/varnish.service

ただし、このファイルを変更すると、パッケージの将来の更新で更新されないという欠点があります。または、コメントで提案されているように、systemd定義に設定を追加する推奨方法であるsystemdドロップインファイルを作成することもできます。

# create the drop in directory
sudo mkdir /etc/systemd/system/varnish.service.d
# create the drop in file. The name is irrelevant, as long as it ends in .conf
sudo vi /etc/systemd/system/varnish.service.d/mysettings.conf

ここでは、変更したい設定を追加するだけで、他のすべてはデフォルトの定義ファイルからロードされます。

例:

[Service]
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

これはデフォルトの行です。必要に応じて変更してください

その後、systemctlに構成ファイルをリロードしてサービスを再起動するように伝えます

sudo systemctl daemon-reload
sudo service varnish restart

Varnishはポート80でリッスンするはずです。


私はこれをやった、このファイルが含まれています[...] [Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=131072 LimitMEMLOCK=82000 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 ExecReload=/usr/share/varnish/reload-vcl [...]
ブルーノ

おそらく、Apacheとvarnishのデフォルトの構成ファイルを復元して、やり直す必要があります。これをテストするために設定しました。ポート8080とvarnish.serviceの1行でリッスンするようにapache構成を変更するだけで済みました。他には何もありません。
Gerald Schneider

ありがとう、うまくいきました!アンインストールの手順を投稿に追加します
Bruno

これは間違ったアプローチです。/ lib / systemd内のsystemdユニットファイルは編集しないでください。/etc/systemd内のドロップインファイルで上書きする必要があります
Stephen

1
systemctl edit varnish.service ユニットファイルオーバーライドドロップインの作成を自動化
HBruijn

5

ドロップインには空のExecStart =が必要であることに注意してください。そうしないと、サービスの開始時にエラーが発生します(ExecStartの複製)。

sudo mkdir /etc/systemd/system/varnish.service.d
sudo nano /etc/systemd/system/varnish.service.d/varnishd.conf

[Service]
ExecStart=
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T <YOUR WEBSERVER IP>:8081 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.