daemon de verniz não escuta na porta configurada

11

Estou tentando instalar verniz no ubuntu 16.04,

Eu li vários artigos, nenhum deles está funcionando. Pelo que li, desde o Ubuntu 15.04, a maneira de configurar o verniz mudou (por causa do systemd).

Agora, eu tenho uma bagunça real que não funciona:


/ etc / default / verniz:

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

/etc/varnish/default.vcl (normalmente aponta para um host apontando para 127.0.0 e porta 8080, mas, para fins de depuração, eu o modifiquei para um domínio 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

após um

sudo service varnish stop
sudo service varnish start

O serviço de verniz não está escutando http://127.0.0.1:80/, antes de uma reinicialização, ouve, http://127.0.0.1:6081/mas não funciona mais ... Não sei o que fazer mais ...




EDIT: após uma reinicialização, nada funciona,

se eu fizer : 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 eu sudo:, varnishd -d -f /etc/varnish/default.vclentão start, tudo funciona bem ... até eu sair do cli


resolvido graças à resposta do @Gerald Schneider. Eu posto as etapas que tive que fazer:

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 tudo funciona bem! a mágica está no /lib/systemd/system/varnish.servicearquivo, outros recursos on-line que eu achei me fizeram pensar que está em outro lugar, então cuidado com os tutoriais on-line (desatualizados)!

Bruno
fonte
Provavelmente necessário para remover sua gota anterior em ->. /etc/systemd/system/varnish.service
Mike Q

Respostas:

17

Você também precisa alterar os parâmetros de início do verniz na definição de serviço systemd. Você pode editar a linha começando com ExecStartno arquivo de definição de serviço:

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

A modificação deste arquivo, no entanto, tem a desvantagem de que ele não será atualizado em futuras atualizações do pacote. Como alternativa, conforme sugerido nos comentários, você pode criar uma queda no arquivo systemd , que é a maneira preferida de adicionar configurações às definições do 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

Aqui você só precisa adicionar as configurações que deseja alterar; todo o resto será carregado no arquivo de definição padrão.

Exemplo:

[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 é a linha padrão, altere-a conforme necessário

Depois, diga ao systemctl para recarregar seus arquivos de configuração e reiniciar o serviço

sudo systemctl daemon-reload
sudo service varnish restart

O verniz agora deve escutar na porta 80.

Gerald Schneider
fonte
Eu fiz isso, este arquivo contém:[...] [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
Talvez você deva restaurar os arquivos de configuração padrão para apache e verniz e começar de novo. Eu configurei isso para testá-lo e só precisei alterar a configuração do apache para escutar na porta 8080 e a única linha no varnish.service. Nada mais.
Gerald Schneider
obrigado, deu certo! Eu adiciono as etapas para desinstalar no meu post
Bruno
Esta é a abordagem errada. Arquivos da unidade Systemd em / lib / systemd não deve ser editado, eles devem ser substituídos com drop-in arquivos em / etc / systemd
Stephen
1
systemctl edit varnish.service automatiza a criação de arquivo de unidade de substituição drop-ins para você
HBruijn
5

Observe que o drop-in deve ter um ExecStart vazio = Caso contrário, você receberá um erro ao iniciar o serviço (ExecStart duplicado)

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

Com

[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
fonte