Varnish responde mesmo com webserver down


Essa dica foi escrita pelo nosso amigo Bruno Almeida.

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.
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;
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

Postagens mais visitadas