Der Lackdämon überwacht den konfigurierten Port nicht

11

Ich versuche, Lack auf Ubuntu 16.04 zu installieren,

Ich habe mehrere Artikel gelesen, von denen keiner funktioniert. Nach dem, was ich gelesen habe, hat sich seit Ubuntu 15.04 die Art und Weise der Lackkonfiguration geändert (aufgrund von systemd).

Jetzt habe ich ein echtes Durcheinander, das nicht funktioniert:


/ etc / default / lack:

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

/etc/varnish/default.vcl (normalerweise zeigt es auf einen Host, der auf 127.0.0 und Port 8080 verweist, aber zum Debuggen habe ich es in eine externe Domäne geändert) 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

nach einer

sudo service varnish stop
sudo service varnish start

Der http://127.0.0.1:80/Lackdienst hört nicht zu , vor einem Neustart hört er zu, http://127.0.0.1:6081/aber es funktioniert nicht mehr ... Ich weiß nicht, was ich mehr tun soll ...




BEARBEITEN: Nach einem Neustart funktioniert nichts,

wenn ich mache : 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

wenn ich sudo: varnishd -d -f /etc/varnish/default.vcldann startfunktioniert alles gut ... bis ich den cli verlasse


gelöst dank @Gerald Schneider Antwort. Ich poste die Schritte, die ich tun musste:

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

und alles funktioniert gut! Die Magie steckt in der /lib/systemd/system/varnish.serviceDatei. Andere Online-Ressourcen, die ich gefunden habe, haben mich glauben gemacht, dass sie woanders sind. Achten Sie also auf die Online-Tutorials (veraltet)!

Bruno
quelle
Möglicherweise müssen Sie nur Ihren vorherigen Drop-In -> entfernen. /etc/systemd/system/varnish.service
Mike Q

Antworten:

17

Sie müssen die Lackstartparameter auch in der systemd-Dienstdefinition ändern. Sie können die Zeile beginnend mit ExecStartin der Service-Definitionsdatei bearbeiten :

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

Das Ändern dieser Datei hat jedoch den Nachteil, dass sie bei zukünftigen Aktualisierungen des Pakets nicht aktualisiert wird. Alternativ können Sie, wie in den Kommentaren vorgeschlagen, eine systemd-Drop-in-Datei erstellen. Dies ist die bevorzugte Methode zum Hinzufügen von Einstellungen zu systemd-Definitionen.

# 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

Hier müssen Sie nur die Einstellungen hinzufügen, die Sie ändern möchten. Alles andere wird aus der Standarddefinitionsdatei geladen.

Beispiel:

[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

Dies ist die Standardzeile. Ändern Sie sie nach Bedarf

Weisen Sie anschließend systemctl an, die Konfigurationsdateien neu zu laden und den Dienst neu zu starten

sudo systemctl daemon-reload
sudo service varnish restart

Der Lack sollte jetzt Port 80 abhören.

Gerald Schneider
quelle
Ich habe dies getan, diese Datei enthält:[...] [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 [...]
Bruno
Vielleicht sollten Sie die Standardkonfigurationsdateien für Apache und Lack wiederherstellen und von vorne beginnen. Ich habe dies eingerichtet, um es zu testen, und ich musste nur die Apache-Konfiguration ändern, um Port 8080 und die einzelne Zeile in varnish.service abzuhören. Nichts anderes.
Gerald Schneider
danke, es hat funktioniert! Ich füge die Schritte zum Deinstallieren in meinem Beitrag hinzu
Bruno
Dies ist der falsche Ansatz. Systemd-Einheitendateien in / lib / systemd sollten nicht bearbeitet werden, sie sollten mit Drop-In-Dateien in / etc / systemd überschrieben werden
Stephen
1
systemctl edit varnish.service automatisiert das Erstellen von Drop-Ins zum Überschreiben von Einheitendateien für Sie
HBruijn
5

Beachten Sie, dass das Drop-In einen leeren ExecStart haben sollte. Andernfalls wird beim Starten des Dienstes eine Fehlermeldung angezeigt (doppelter ExecStart).

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

Mit

[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
George
quelle