Configurar o servidor Web
Configure seu servidor Web para escutar em uma porta diferente da porta padrão 80, pois o Varnish responde diretamente às solicitações HTTP recebidas, não ao servidor Web.
As seções a seguir usam a porta 8080 como exemplo.
Para alterar a porta de escuta do Apache 2.4:
- Abra
/etc/httpd/conf/httpd.conf
em um editor de texto. - Localize a diretiva
Listen
. - Altere o valor da porta de escuta para
8080
. (Você pode usar qualquer porta de escuta disponível.) - Salve as alterações em
httpd.conf
e saia do editor de texto.
Modificar a configuração do sistema Vernish
Para modificar a configuração do sistema Vernish:
-
Como usuário com privilégios
root
, abra o arquivo de configuração Vanish em um editor de texto:- CentOS 6:
/etc/sysconfig/varnish
- CentOS 7:
/etc/varnish/varnish.params
- Debian:
/etc/default/varnish
- Ubuntu:
/etc/default/varnish
- CentOS 6:
-
Defina a porta de escuta do verniz como 80:
code language-conf VARNISH_LISTEN_PORT=80
Para o Varnish 4.x, verifique se DAEMON_OPTS contém a porta de escuta correta para o parâmetro
-a
(mesmo se VARNISH_LISTEN_PORT estiver definida com o valor correto):code language-conf DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
-
Salve as alterações no arquivo de configuração de verniz e saia do editor de texto.
Modificar o VCL padrão
Esta seção discute como fornecer configuração mínima para que o Verniz retorne cabeçalhos de resposta HTTP. Isso permite verificar se o Verniz funciona antes de configurar o aplicativo Commerce para usar o Verniz.
Para configurar minimamente o Verniz:
-
Fazer backup de
default.vcl
:code language-bash cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
-
Abra
/etc/varnish/default.vcl
em um editor de texto. -
Localize a seguinte estrofe:
code language-conf backend default { .host = "127.0.0.1"; .port = "80"; }
-
Substitua o valor de
.host
pelo nome de host ou endereço IP totalmente qualificado e a porta de escuta do back-end ou do servidor de origem do Verniz; ou seja, o servidor que fornece o conteúdo O verniz será acelerado.Normalmente, esse é o seu servidor Web. Consulte Servidores backend no guia de verniz.
-
Substitua o valor de
.port
pela porta de escuta do servidor Web (8080 neste exemplo).Exemplo: o Apache está instalado no host 192.0.2.55 e o Apache está escutando na porta 8080:
code language-conf backend default { .host = "192.0.2.55"; .port = "8080"; }
note info INFO Se o Varnish e o Apache estiverem em execução no mesmo host, a Adobe recomenda o uso de um endereço IP ou nome de host, em vez de localhost
. -
Salve as alterações em
default.vcl
e saia do editor de texto. -
Reiniciar o verniz:
code language-bash service varnish restart
Se o Verniz não for iniciado, tente executá-lo a partir da linha de comando da seguinte maneira:
varnishd -d -f /etc/varnish/default.vcl
Isso deve exibir mensagens de erro.
Verificar se o verniz está funcionando
As seções a seguir discutem como verificar se o Verniz está funcionando, mas sem configurar o Commerce para usá-lo. Você deve tentar isso antes de configurar o Commerce.
Execute as tarefas discutidas nas seguintes seções na ordem mostrada:
Iniciar verniz
Digite: service varnish start
Se o Varnish falhar ao ser iniciado como um serviço, inicie-o a partir da linha de comando da seguinte maneira:
-
Inicie a CLI do Vernish:
code language-bash varnishd -d -f /etc/varnish/default.vcl
-
Inicie o processo filho de Verniz:
Quando solicitado, insira
start
As mensagens a seguir são exibidas para confirmar um início bem-sucedido:
code language-none child (29805) Started 200 0 Child (29805) said Child (29805) said Child starts
netstat
Faça logon no servidor Vernish e insira o seguinte comando:
netstat -tulpn
Procure a seguinte saída em particular:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 32614/varnishd
tcp 0 0 127.0.0.1:58484 0.0.0.0:* LISTEN 32604/varnishd
tcp 0 0 :::8080 :::* LISTEN 26822/httpd
tcp 0 0 ::1:48509 :::* LISTEN 32604/varnishd
O anterior mostra o Varnish em execução na porta 80 e o Apache em execução na porta 8080.
Se você não vir a saída para varnishd
, verifique se o Verniz está em execução.
Consulte netstat
opções.
Instale o software da Commerce
Instale o software Commerce, se ainda não tiver feito isso. Quando solicitado a fornecer um URL base, use o host verniz e a porta 80 (para verniz) porque verniz recebe todas as solicitações HTTP recebidas.
Possível erro ao instalar o Commerce:
Error 503 Service Unavailable
Service Unavailable
XID: 303394517
Varnish cache server
Se você receber esse erro, edite default.vcl
e adicione um tempo limite à estrofe backend
da seguinte maneira:
backend default {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 600s;
}
Verificar cabeçalhos de resposta HTTP
Agora é possível verificar se o Verniz está servindo páginas observando os cabeçalhos de resposta de HTML retornados de qualquer página.
Antes de visualizar os cabeçalhos, é necessário definir o Commerce para o modo de desenvolvedor. Há várias maneiras de fazer isso, a mais simples delas é modificar .htaccess
na raiz do aplicativo Commerce. Você também pode usar o comando magento deploy:mode:set
.
Definir Commerce para modo de desenvolvedor
Para definir o Commerce para o modo de desenvolvedor, use o comando magento deploy:mode:set
.
Veja o log de verniz
Verifique se o Verniz está em execução e digite o seguinte comando no servidor Verniz:
varnishlog
Em um navegador da Web, vá para qualquer página do Commerce.
Uma longa lista de cabeçalhos de resposta é exibida na janela da tela de comandos. Procure cabeçalhos como os seguintes:
- BereqHeader X-Varnish: 3
- VCL_call BACKEND_FETCH
- VCL_return fetch
- BackendOpen 17 default(10.249.151.10,,8080) 10.249.151.10 60914
- Backend 17 default(10.249.151.10,,8080)
- Timestamp Bereq: 1440449534.261791 0.000618 0.000618
- ReqHeader Host: 10.249.151.10
- ReqHeader Connection: keep-alive
- ReqHeader Content-Length: 86
- ReqHeader Cache-Control: max-age=0
- ReqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- ReqHeader Origin: http://10.249.151.10
Se cabeçalhos como estes não forem exibidos, pare de Verniz, verifique seu default.vcl
e tente novamente.
Observar cabeçalhos de resposta de HTML
Há várias maneiras de visualizar cabeçalhos de resposta, incluindo o uso de um plug-in de navegador ou um inspetor de navegador.
O exemplo a seguir usa curl
. Você pode inserir esse comando em qualquer máquina que possa acessar o servidor do Commerce usando HTTP.
curl -I -v --location-trusted '<your Commerce base URL>'
Por exemplo,
curl -I -v --location-trusted 'http://192.0.2.55/magento2'
Procure cabeçalhos como os seguintes:
Content-Type: text/html; charset=iso-8859-1
X-Varnish: 15
Age: 0
Via: 1.1 varnish-v6
X-Magento-Cache-Debug: HIT