demone varnish non in ascolto sulla porta configurata


11

Sto cercando di installare la vernice su Ubuntu 16.04,

Ho letto diversi articoli nessuno dei quali funziona. Da quello che ho letto, da Ubuntu 15.04, il modo di configurare la vernice è cambiato (a causa di systemd).

Ora ho un vero casino che non funziona:


/ 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 (normalmente punta a un host che punta a 127.0.0 e alla porta 8080, ma a scopo di debug l'ho modificato in un dominio esterno) 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

dopo un

sudo service varnish stop
sudo service varnish start

Il servizio vernice non è in ascolto http://127.0.0.1:80/, prima di un riavvio, è in ascolto http://127.0.0.1:6081/ma non funziona più ... Non so cosa fare di più ...




EDIT: dopo un riavvio, nulla funziona,

se lo faccio: 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

se sudo: varnishd -d -f /etc/varnish/default.vclallora starttutto funziona bene ... fino a quando non ho lasciato il cli


risolto grazie alla risposta @Gerald Schneider. Pubblico i passaggi che dovevo fare:

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

e tutto funziona bene! la magia è nel /lib/systemd/system/varnish.servicefile, altre risorse online che ho trovato mi hanno fatto pensare che sia altrove, quindi fai attenzione ai tutorial online (obsoleti)!


Probabilmente necessario semplicemente rimuovere il tuo precedente drop in ->. /etc/systemd/system/varnish.service
Mike Q,

Risposte:


17

È necessario modificare anche i parametri di avvio della vernice nella definizione del servizio systemd. È possibile modificare la riga che inizia con ExecStartnel file di definizione del servizio:

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

La modifica di questo file, tuttavia, ha lo svantaggio di non essere aggiornato nei futuri aggiornamenti del pacchetto. In alternativa, come suggerito nei commenti, è possibile creare un drop di file systemd , che è il modo preferito di aggiungere impostazioni alle definizioni di 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

Qui devi solo aggiungere le impostazioni che desideri modificare, tutto il resto verrà caricato dal file di definizione predefinito.

Esempio:

[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

Questa è la linea predefinita, cambiarla di cui hai bisogno

Successivamente, dire a systemctl di ricaricare i file di configurazione e di riavviare il servizio

sudo systemctl daemon-reload
sudo service varnish restart

Varnish ora dovrebbe ascoltare sulla porta 80.


Ho fatto questo, questo file contiene:[...] [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

Forse dovresti ripristinare i file di configurazione predefiniti per apache e vernice e ricominciare. Ho impostato questo per testarlo e ho dovuto solo cambiare la configurazione di Apache per ascoltare sulla porta 8080 e la singola riga in varnish.service. Nient'altro.
Gerald Schneider,

grazie, ha funzionato! Aggiungo i passaggi per disinstallare nel mio post
Bruno

Questo è l'approccio sbagliato. I file di unità di Systemd in / lib / systemd non devono essere modificati, devono essere sovrascritti con file di drop-in in / etc / systemd
Stephen

1
systemctl edit varnish.service automatizza la creazione dei drop-in di sostituzione dei file di unità per te
HBruijn l'

5

Si noti che il drop-in dovrebbe avere un ExecStart vuoto = Altrimenti si otterrà un errore durante l'avvio del servizio (ExecStart duplicato)

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

Con

[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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.