Plug-in de cache HTTP Varnish para WordPress em um contêiner Docker

Acompanhe as novidades e ultimas postagens.

Seu site est√° com tr√°fego intenso? Voc√™ est√° procurando uma solu√ß√£o que reduza a carga do servidor e melhore a velocidade do site ? O verniz pode ser o que voc√™ precisa. O Varnish escuta as solicita√ß√Ķes duplicadas e fornece uma vers√£o em cache das p√°ginas do seu site, mediando entre as solicita√ß√Ķes dos usu√°rios e o seu servidor.

Ent√£o, como voc√™ ativa o verniz? Neste artigo, vou mostrar como voc√™ pode aumentar facilmente a velocidade do seu site usando o Varnish como um cont√™iner do Docker de um clique . Vou demonstrar como usar uma solu√ß√£o de cache de site como o Varnish pode melhorar facilmente os tempos de resposta da p√°gina e o n√ļmero m√°ximo de visitantes simult√Ęneos em seu site. 

Varnish blog Plesk

O que é verniz e por que você deve usá-lo?

O servi√ßo de armazenamento em cache Varnish √© um aplicativo da web de c√≥digo aberto que opera como um proxy reverso HTTP. Embora crie um cache ap√≥s atender a uma solicita√ß√£o, ele o usa para atender √† solicita√ß√£o do outro visitante, caso o semelhante tenha sido armazenado em cache anteriormente. Portanto, geralmente, existem os seguintes benef√≠cios de tal solu√ß√£o:

  • Desempenho . A principal vantagem do Varnish, j√° que at√© mesmo a maior parte do conte√ļdo din√Ęmico pode ser veiculada usando cache e, assim, evitar qualquer tempo de processamento de backend.
  • Menos carga no servidor. Menor n√ļmero de solicita√ß√Ķes atendidas para evitar o uso de fun√ß√Ķes de back-end.
  • Flexibilidade de configura√ß√£o. VCL (linguagem de configura√ß√£o Varnish) permite que o administrador execute ajustes finos adicionais do ambiente de cache.

Agora falando da parte ‚ÄúHTTP Reverse-proxy‚ÄĚ, que √© o m√©todo que Varnish usa. No Plesk j√° temos o NGINX operando como um servidor web frontend, ent√£o como podemos executar o Varnish simultaneamente? √Č a√≠ que entra um cont√™iner Docker com suas regras de proxy.

Aplicação de verniz em um contêiner Docker

Docker √© um projeto de c√≥digo aberto que torna a implanta√ß√£o de aplicativos de servi√ßo, incluindo seu ambiente nativo, incrivelmente simples. No Plesk, temos este software implementado como uma extens√£o, que √© completamente descrito nesta documenta√ß√£o do Plesk . Portanto, em vez de instalar o Varnish no servidor Plesk, vamos implantar o cont√™iner Docker oficial do Varnish:

Ative o verniz no Plesk e teste-o em uma p√°gina est√°tica

Tudo bem, agora que as quest√Ķes te√≥ricas est√£o resolvidas, vamos para a parte pr√°tica. Na configura√ß√£o padr√£o do Plesk, temos o Apache2 ouvindo em 7080 / tcp (HTTP) e 7081 / tcp (HTTPS) e NGINX, que atua como um proxy e realmente serve o conte√ļdo via 80 / tcp e 443 / tcp. 

Enquanto isso, agora tamb√©m teremos um recipiente de verniz entre os dois. Conseq√ľentemente, o cont√™iner do Varnish receberia uma solicita√ß√£o do NGINX e retornaria o conte√ļdo do Apache2. Mas n√£o se preocupe, √© mais simples do que parece!

Antes de prosseguirmos, primeiro precisamos nos certificar de que a extens√£o Docker est√° instalada. No painel do Plesk, navegue at√© Extens√Ķes> Cat√°logo de extens√Ķes e, na barra de pesquisa, digite ‚ÄúDocker‚ÄĚ. Em seguida, clique em ‚ÄúObter gratuitamente‚ÄĚ se n√£o estiver instalado ou em ‚ÄúAbrir‚ÄĚ se estiver.

Nos √≠cones do cat√°logo de extens√£o, voc√™ encontrar√° a imagem oficial do verniz e pressione o bot√£o ‚ÄúExecutar‚ÄĚ para instalar e executar o recipiente do verniz:

Na p√°gina que se abre, edite as configura√ß√Ķes do cont√™iner. Desmarque a fun√ß√£o ‚ÄúMapeamento autom√°tico de porta‚ÄĚ e aplique os seguintes mapeamentos manuais:

Blog do Varnish Plesk

Isso significa que todas as solicita√ß√Ķes HTTP enviadas para 32780 / tcp do servidor seriam redirecionadas para a porta 80 / tcp do cont√™iner Varnish Docker. Mesmo que n√£o vamos usar a regra 32781, √© necess√°rio configur√°-la por design.

Clique em ‚ÄúOk‚ÄĚ para executar o cont√™iner.

Feito isso, agora √© necess√°rio configurar o dom√≠nio. Navegue at√© Domains> example.com> Docker Proxy Rules e crie a seguinte regra de proxy:

Em seguida, navegue at√© Dom√≠nios> example.com> Configura√ß√Ķes de hospedagem e desative a op√ß√£o ‚ÄúRedirecionamento 301 seguro para SEO permanente de HTTP para HTTPS‚ÄĚ, pois queremos testar a funcionalidade Varnish sobre HTTP primeiro.

Agora precisamos permitir o acesso √† porta Apache2 da sub-rede Docker local (172.17.0.0/24). Isso pode ser alcan√ßado por meio de IPtables  usando o seguinte comando:

# iptables -I INPUT -p tcp --dport 7080 -s 172.17.0.0/24 -j ACEITAR

Depois de adicionado, salve o conjunto de regras IPtables com este:

# iptables-save

No entanto, caso haja uma extens√£o do Firewall do Plesk instalada no servidor, √© necess√°rio adicionar a regra usando a GUI do Firewall do Plesk por meio de  Ferramentas e configura√ß√Ķes> Seguran√ßa (Firewall)> Adicionar regra personalizada :

Assim que tivermos o firewall configurado, é hora de configurarmos o próprio Varnish para endereçar o IP: Porta do servidor Apache2 local.

Observa√ß√£o importante:  nos comandos a seguir, √© necess√°rio substituir 203.0.113.2 pelo endere√ßo IP real do dom√≠nio, bem como o nome do cont√™iner (verniz) se tiver sido definido como personalizado.

Agora, para editar o /etc/varnish/default.vcl dentro do cont√™iner, execute os pr√≥ximos 2 comandos:

# docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker exec -t {} sed -i '/.port/c \ .port = "7080";' /etc/varnish/default.vcl
# docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker exec -t {} sed -i '/.host/c \ .host = "203.0.113.2";' /etc/varnish/default.vcl

Depois que as altera√ß√Ķes de configura√ß√£o forem aplicadas, reinicie o cont√™iner:

# docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker restart {}

Agora, quando abrimos nosso site, http://example.com, e o verificamos por meio das ferramentas de desenvolvedor do navegador (cabeçalhos), podemos ver que, após a solicitação inicial, a página foi carregada usando o cache do Varnish:

Varnish cache Plesk blog

Configurando o Varnish no Plesk para servir a uma inst√Ęncia do WordPress

Neste ponto, já temos o WordPress instalado em nosso domínio example.com.

Em primeiro lugar, vamos baixar a predefinição de configuração do WordPress e colocá-la no catálogo de configuração do Docker:

# curl -o /tmp/default.vcl --silent https://support.plesk.com/hc/en-us/article_attachments/4405703421586/default.vcl && docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker cp /tmp/default.vcl {}: / etc / varnish /

Depois que a configuração for copiada, é hora de ajustar o arquivo de configuração para usar o endereço IP do domínio:

# docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker exec -t {} sed -i 's / XXX.XXX.XXX.XXX / 203.0.113.2 / g' default.vcl

E reinicie o cont√™iner para aplicar as altera√ß√Ķes:

# docker ps | verniz grep | awk {'print $ 1'} | xargs -i docker restart {}

Use um plug-in do WordPress para ativar o suporte para HTTPS

Importante: N√£o use a op√ß√£o ‚ÄúRedirecionamento 301 seguro para SEO permanente de HTTP para HTTPS‚ÄĚ dentro do Plesk em ‚ÄúConfigura√ß√Ķes de hospedagem‚ÄĚ porque isso levar√° a um loop de redirecionamento em nossa constela√ß√£o de ambiente especial.

Em vez disso, configure as pr√≥ximas diretivas Apache2 HTTP / HTTPS adicionais em Domains> example.com>  Apache & Nginx Settings:

SetEnvIf X-Forwarded-Proto "https" HTTPS = on 

Header append Vary: X-Forwarded-Proto

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond% {HTTPS}! = On

RewriteCond% {HTTP: X-Forwarded-Proto}! Https [NC]


RewriteRule ^ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]

√Č isso! Agora temos nosso site WordPress alimentado por um servidor de cache Varnish. No caso de desejar usar o Verniz para diferentes CMS, voc√™ pode verificar os tutoriais oficiais do Verniz.

Resumo: Verniz para WordPress dentro de um contêiner Docker no Plesk

Deixe-me fazer uma pequena lista de verificação:

Verniz no recipiente Docker? sim.
Verniz no WordPress? sim.
Verniz em Plesk? sim.
Verniz para WordPress dentro do cont√™iner Docker no Plesk? Absolutamente sim!
Miss√£o cumprida!

Como voc√™ viu, o Varnish pode melhorar muito o desempenho do seu site WordPress e reduzir a carga da CPU do seu servidor.¬†√Č relativamente f√°cil configurar um ambiente de trabalho usando Varnish em um cont√™iner Docker entre Nginx e Apache dentro do Plesk.¬†A parte mais importante √© a configura√ß√£o correta do verniz para seu CMS espec√≠fico.

Confira nossos planos de hospedagem de Sites, planos de hospedagem para WordPress, planos Econ√īmicos. Planos de Email Profissional e Servidores VPS. Tenha um atendimento personalizado entrando em Contato pelo Site ou pelo WhatsApp. Se voc√™ √© um revendedor, confira nossos planos de revenda.

Compartilhar:

Deixe um coment√°rio

20% DE

 DESCONTO

BLACK

NOVEMBER

Cupom válido até 01/12/2023 ou até durarem os estoques.
V√°lido somente para novos assinantes.

CUPOM:  

BLACK2023

Desconto v√°lido nos planos MENSAIS para Hospedagem Cloud, Revenda Plesk e Email Profissional. Desconto ser√° aplicado durante 12 meses no plano de assinatura mensal.