el barniz daemon no escucha en el puerto configurado

11

Estoy tratando de instalar barniz en ubuntu 16.04,

Leí varios artículos, ninguno funciona. Por lo que leí, desde ubuntu 15.04, la forma de configurar el barniz ha cambiado (debido a systemd).

Ahora tengo un verdadero desastre que no funciona:


/ etc / default / barniz:

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

/etc/varnish/default.vcl (normalmente apunta a un host que apunta a 127.0.0 y al puerto 8080, pero para fines de depuración lo modifiqué a un dominio externo) 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

después de

sudo service varnish stop
sudo service varnish start

El servicio de barniz no está escuchando http://127.0.0.1:80/, antes de reiniciar, escucha http://127.0.0.1:6081/pero ya no funciona ... No sé qué hacer más ...




EDITAR: después de reiniciar, nada funciona,

si lo hago : 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

si sudo: varnishd -d -f /etc/varnish/default.vclentonces starttodo funciona bien ... hasta que salga del cli


resuelto gracias a la respuesta de @Gerald Schneider. Publico los pasos que tenía que hacer:

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

y todo funciona bien! la magia está en el /lib/systemd/system/varnish.servicearchivo, otros recursos en línea que encontré me hicieron pensar que está en otro lugar, ¡así que tenga cuidado con los tutoriales en línea (obsoletos)!

Bruno
fuente
Probablemente sea necesario eliminar solo su caída anterior en ->. /etc/systemd/system/varnish.service
Mike Q

Respuestas:

17

También debe cambiar los parámetros de inicio del barniz en la definición del servicio systemd. Puede editar la línea que comienza ExecStarten el archivo de definición de servicio:

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

Sin embargo, la modificación de este archivo tiene la desventaja de que no se actualizará en futuras actualizaciones del paquete. Alternativamente, como se sugiere en los comentarios, puede crear una caída de systemd en el archivo , que es la forma preferida de agregar configuraciones a las definiciones de 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

Aquí solo necesita agregar la configuración que desea cambiar, todo lo demás se cargará desde el archivo de definición predeterminado.

Ejemplo:

[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

Esta es la línea predeterminada, cámbiela según lo necesite

Luego, dígale a systemctl que vuelva a cargar sus archivos de configuración y reinicie el servicio.

sudo systemctl daemon-reload
sudo service varnish restart

Barniz ahora debería escuchar en el puerto 80.

Gerald Schneider
fuente
He hecho esto, este archivo 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
Tal vez debería restaurar los archivos de configuración predeterminados para apache y barniz y comenzar de nuevo. Lo configuré para probarlo y solo tuve que cambiar la configuración de apache para escuchar en el puerto 8080 y la línea única en varnish.service. Nada más.
Gerald Schneider
gracias, funcionó! Agrego los pasos para desinstalar en mi publicación
Bruno
Este es el enfoque equivocado. Los archivos de unidad de Systemd en / lib / systemd no deben editarse, deben anularse con archivos desplegables en / etc / systemd
Stephen
1
systemctl edit varnish.service automatiza la creación de drop-ins de anulación de archivos de unidad para usted
HBruijn
5

Tenga en cuenta que el menú desplegable debe tener un ExecStart vacío = De lo contrario, obtendrá un error al iniciar el servicio (ExecStart duplicado)

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
Jorge
fuente