Há poucos dias, eu iniciei alguns testes com o módulo ReverseProxyCachingExample do Nginx. Como o próprio nome já diz, este módulo tem como objetivo fazer cache do conteúdo web, suportado pelo nginx, junto a algum diretório. Interessante, não é mesmo?

Mas a pergunta que fiz, logo de cara, foi se ele teria a capacidade de substituir o Varnish, o melhor software opensource/commercial da atualidade, em minha opinião.

A resposta foi não. Basta dar uma olhada na sintaxe dele, do módulo do nginx, logo abaixo:

http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m
inactive=24h max_size=1g;
server {
location / {
proxy_pass http://1.2.3.4;
proxy_set_header Host $host;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
proxy_cache_use_stale error timeout invalid_header updating
http_500 http_502 http_503 http_504;
}
}
}

Simples para chuchu, vc’s não acham ?

Um dado que pude perceber é que os objetos cacheados pelo Nginx ficam armazenados em memória, onde está área de memória é compartilhada e necessita ser configurada.

Mais detalhes quanto ao seu funcionamento poderão ser verificados no seguinte link.

Agora, ficou claro para mim que este cara não possui a menor capacidade de substituir o Varnish, isso porque este último possui centenas de features que o tornam mais performático e maleável.

Compartilhar:

Este post tem 3 comentários

  1. Ola Gustavo. Uso nginx com cache a uns 3 anos e acho super tranquilo de utilizar/configurar. Sem falar que cumpre o que promete no quesito performance, certa vez vi um pico de 19k users simultâneos em um WP que rodava num Linode de 758MB com nosso amigo nginx + cache na frente. Engraçado que acho aa configs do Varnish mais complicadas.

  2. Diego, obrigado pelo feedback. Não é que eu acho que as confs do Varnish são mais complexas, mas sim, mais completas do que do Nginx. Podemos, por exemplo, criar regras especificas para o redirecionamento para outras URLs, enviar uma resposta de erro para qualquer query que não seja pertinente ao ambiente que ele suporte e assim vai. Veja, para mim, o Varnish possui uma quantidade bem maior de funcionalidades que nginx.

  3. Hmm, entendi seu ponto. Mas ainda estou bastante intrigado, você pode mostrar algum exemplo prático de algo que é tranquilo/nativo do varnish mas que não encontrou uma forma de fazer no nginx ou era complexo demais? Abraço.

Deixe uma resposta

Fechar Menu