Varnish responde mesmo com webserver down
Essa dica foi escrita pelo nosso amigo Bruno Almeida.
O Varnish, segundo seu site, é um web application accelerator também conhecido como um caching HTTP reverse proxy.
Você instala na frente de qualquer servidor que entenda HTTP e o configura para cachear o conteúdo. A velocidade de resposta aumentará de um fator de 300 a 1000 vezes, dependendo da sua arquitetura.
Uma visão de alto nível sobre ele pode ser visto em um vídeo no about do site.
O nginx [engine x] é um HTTP server, um reverse proxy server e mais um mail proxy server.
Vou apenas mostrar como fiz em um caso em que o cliente não podia ter indisponibilidade em seu site, isto é, o Varnish precisava continuar respondendo mesmo com a queda do nginx.
O que fiz foi incluir os seguintes parâmetros na configuração do nginx.
Nos parâmetros considere que:
- Porta 8081 é a porta de seu servidor de aplicação que irá responder;
- O IP: 127.0.0.1 é um IP local do servidor que poderá ser trocado pelo IP de seu servidor de aplicação;
- Porta 8081 é a porta de seu servidor de aplicação que irá responder;
- O IP: 127.0.0.1 é um IP local do servidor que poderá ser trocado pelo IP de seu servidor de aplicação;
No arquivo: /etc/varnish/default.vcl insira o conteúdo.
#Host servidor do nginx
backend default { .host = "127.0.0.1"; .port = "8081"; .probe = { .timeout = 60s; .interval = 10s; .window = 30; .threshold = 10;
#Parametros para teste da página antes de servir conteúdo local
.request = "GET HTTP/1.1" "Host: PAGINA_FINAL_DO_CLIENTE:PORTA_DA_PAGINA_FINAL" "Connection: close"; } } sub vcl_recv { #Tempo útil de vida do conteúdo set req.grace = 6h; #Habilitando cache para páginas com cookies remove req.http.cookie; } sub vcl_fetch { #Tempo útil de vida do conteúdo set beresp.grace = 6h; #TTL Inserido para tempo de limite de vida do conteúdo set beresp.ttl = 1h; #Habilitando cache para páginas com cookies unset beresp.http.Set-Cookie; }
Como está funcionando?
O Varnish fica ativo na frente do ngnix escutando todas as requisições e mandando para o ngnix, caso o ngnix caia ou qualquer motivo que seja, irá enviar uma página estática que está armazenada em cache.
Simples assim.
Comentários
Postar um comentário