ERR_CONNECTION_REFUSED após a instalação do Varnish em um servidor Apache2

5

Depois de instalar o Varnish via sudo apt-get update && sudo apt-get install varnish , e depois:

sudo sed -i 's/Listen 80/Listen 8080/g' /etc/apache2/ports.conf
sudo sed -i 's/\*\:80/\*\:8080/g' /etc/apache2/sites-available/000-default.conf
sudo sed -i 's/DAEMON_OPTS="-a \:6081 \/DAEMON_OPTS="-a \:80 \/g' /etc/default/varnish
sudo systemctl restart apache2.service && sudo service varnish restart 

Se eu for a um site que funcionou antes dessa instalação, recebo:

  

ERR_CONNECTION_REFUSED.

Isso está ligado porque o padrão de backend em /etc/varnish/default.vcl é .port = "8080"; .

  • Ao executar varnishncsa ou varnishlog não traz saída no Bash.

Minha pergunta:

Por que isso aconteceria? Varnish está na porta 80, Apache em 8080 ... O que mais poderia dar errado?

Notas:

Eu também tentei alterar 80 a 8080 em todos os arquivos conf do meu site. Além do fato de que isso não ajudou, eu já percebi que isso era um erro (os sites são acessados através da porta 80, portanto, em contraste com 000-default.conf, sua porta de arquivo conf não deve mudar para 8080).

    
por JohnDoea 10.05.2017 / 10:29

1 resposta

4

ERR_CONNECTION_REFUSED geralmente significa que uma porta está bloqueada por um firewall ou não há nada escutando nessa porta.

Se você estiver executando no Ubuntu 15.04 ou superior, a mudança para systemd mudou a forma como o Varnish lê as configurações. Ou seja, ele ignorará /etc/default/varnish e, em vez disso, lerá o arquivo de serviço em /etc/systemd/system/varnish.service . Portanto, seu servidor Varnish provavelmente está sendo executado na porta padrão 6081.

Para corrigir isso, você precisará substituir o systemd config. Execute estes comandos:

sudo mkdir -p /etc/systemd/system/varnish.service.d
sudo nano /etc/systemd/system/varnish.service.d/customexec.conf

Isso criará um arquivo de execução personalizado para o serviço do Varnish, que conterá suas configurações personalizadas. Neste arquivo, verifique se o conteúdo é:

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

Faça as alterações na configuração que deseja alterar e salve o arquivo com Ctrl + X .

Recarregue o cache do serviço systemd executando este comando:

sudo systemctl daemon-reload

Quando esse comando estiver concluído, reinicie o serviço Varnish:

sudo systemctl restart varnish.service

Verifique se o seu firewall permite a passagem da porta 80, e você deve estar pronto.

Como de costume, esta solução também assume que o Apache está usando a porta 8080 para tudo - deve haver nenhum binds para a porta 80 em qualquer lugar na configuração do Apache. Verifique isso para se certificar de que é o caso. Se for, um dos Apache ou Varnish falhará em iniciar ou funcionar.

(fonte)

    
por Kaz Wolfe 10.05.2017 / 20:12