Blog

Varnish vs Nginx

Varnish vs Nginx

Velocidade é tudo na internet. Algo tão simples como o tempo de carregamento de uma página afeta a taxa de retenção de visitas e age como indicador da qualidade de um site. Um ingrediente-chave para a velocidade de um site é o caching, além dos servidores proxy e proxies reversos que os sites usam para lidar com caching.

Neste artigo, discutiremos as similaridades e as diferenças entre dois tipos populares de servidores proxy: Varnish e Nginx; e esperamos fornecer alguns insights sobre qual deles pode ser mais útil considerando as necessidades do seu site.

Varnish

Lançado em 2006, o Varnish imediatamente se diferenciou de seus concorrentes ao concentrar-se primeiramente na aceleração de HTTP. Essa é a aceleração de velocidade de acesso a páginas web, especificamente por meio de conexões HTTP. Esse foco atraiu empresas renomadas, como Pinterest e Twitch, incorporando a aceleração de HTTP da Varnish para seu stack de servidores.

Vale frisar que, por ora, o Varnish não roda uma aplicação inteira sozinha, já que é um acelerador e não um servidor web completo. É necessário, ainda, executar um pacote de servidor web separado, mas o Varnish pode suplementar ainda mais isso, acelerando a velocidade de conexão HTTP do servidor.

Nginx

Alguns anos mais velho que o Varnish, o Nginx é um servidor web de código aberto que apareceu no mercado em 2002. Construído como uma tentativa de resolver uma questão de simultaneidade arquitetural, o Nginx se tornou uma solução popular para muitos dos sites com os tráfegos mais pesados do mundo, incluindo Netflix, Twitter e Facebook.

O foco do Nginx em solucionar a simultaneidade levou ao desenvolvimento de um algoritmo assíncrono que processa e monitora eventos em todo o sistema constantemente. Isso pode soar um pouco técnico, mas o que importa é que esse processo permite que o Nginx encontre múltiplas conexões por meio de um único processador, em vez de ter que fazer um novo encadeamento para corresponder a cada nova solicitação.

Similaridades

O Varnish e o Nginx têm muito em comum e há muitas coisas com que ambos os pacotes de software conseguem lidar bem. Tanto o Varnish quanto o Nginx podem ser configurados para servir como proxy reverso e load balancer, regulando e equilibrando o tráfego recebido de servidores. Ambos fornecem recursos de caching e cada um contém suas próprias medidas de segurança integradas, incluindo ferramentas de proteção a ataques DDoS. O Varnish e o Nginx têm opções de suporte comercial para empresas dispostas a pagar para obter suporte e features avançadas (Varnish Enterprise e Nginx Plus, respectivamente).

Muitas das diferenças em funcionalidade, mesmo que interessantes de observar, não dizem respeito à qualidade de um serviço em detrimento do outro. Por exemplo, o Nginx suporta e depende muito de terminais SSL. Por padrão, o Varnish não tem essa capacidade, mas lê requisições ESI, as quais o Nginx não interpreta sem um plugin.

Você pode questionar qual das configurações é melhor, mas esse tipo de diferenciação realmente cai na preferência do programador. Isso não significa, no entanto, que isso seja um caso em que todos os produtos são iguais. O Varnish e o Nginx têm muitas diferenças mais pronunciadas sobre as quais mergulharemos… agora.

Por que o Varnish?

Varnish é um serviço bem agilizado e esse design elegante oferece um alto nível de flexibilidade. Uma vantagem dessa flexibilidade aumentada são as opções que permitem configurações de servidor mais distribuídas. Uma distribuição maior simplifica a manutenção do servidor e o monitoramento de performance, permitindo que administradores reescrevam URLs e ajustem políticas de cache em um estalar de dedos. Já o Nginx segue uma configuração mais centralizada, o que significa que pode ser um pouco mais rígido e inflexível diante das mudanças rápidas de administração.

Outra vantagem de escolher o Varnish é a feature Grace Mode. Para impedir que os locais de armazenamento de caching local fiquem lotados de dados antigos, toda essa informação tem um prazo de validade TTL (Time To Live, ou Tempo De Viver). Quando chega a esse ponto, os dados são expurgados para liberar mais espaço e não podem mais ser acessados localmente. A menos que você tenha o Varnish. O Grace Mode do Varnish supera essa barreira de TTL, concedendo acesso a dados de cache que já expiraram no sistema. Isso é particularmente útil durante a manutenção ou falhas inesperadas do sistema, quando algum conteúdo expirado específico pode não ter canais para re-caching.

Além dessas funcionalidades interessantes, o maior destaque do Varnish é o seu foco singular como acelerador web. O Varnish foca uma coisa só, e o faz muito bem, oferecendo um nível realmente impressionante de flexibilidade de caching e purging.

Por que o Nginx?

Embora o Nginx nem sempre consiga acompanhar a flexibilidade do Varnish, ele compensa com sua velocidade. A sua configuração centralizada o permite atender todos os requisitos de um determinado diretório, reduzindo drasticamente os atrasos de resposta do sistema. A alta velocidade torna o Nginx extremamente resiliente em meio a situações de tráfego em grande escala.

Quando servidores lidam com requisições inesperadas, não podem se dar ao luxo de atrasar o tempo de resposta. O Nginx oferece estabilidade durante esses momentos críticos, graças não apenas às buscas de diretórios únicos, mas ao seu software de load balancing de última geração.

Hoje em dia, serviços de cache modernos devem fornecer as próprias soluções de load balancing, mas o load balancer do Nginx vai além, suportando conexões HTTPS de camada 7, oferecendo distribuição de tráfego geográfico e, de modo geral, fornecendo recursos impressionantes para um pacote do tipo.

Comparado ao Varnish, o Nginx tem uma infraestrutura muito mais complexa. Isso pode torná-lo mais difícil de configurar, mas proporciona mais capacidade para lidar com tarefas complexas, como monitoramento de nodes de backend. O Nginx é particularmente eficiente em lidar com conteúdo estático. Sua abordagem single thread permite economizar memória para caching estático, impulsionando tempos de resposta e recuperação.

Como nós lidamos como Caching

Caso esteja procurando algo mais moderno, nosso conjunto de produtos Azion é completamente equipado para lidar com todas as suas necessidades de caching, além de oferecer um sistema interno compatível com a plataforma Azion Edge. Nosso load balancer de camada 7 é o estado da arte e foca em balanceamento de conteúdo para ajustar o fluxo de tráfego baseado no tipo de arquivo recebido.

E mais, ao levar o caching para nossa rede Edge, você poderá aproveitar das conexões de baixa latência oferecidas por nossas edge nodes. Suas configurações distribuídas significam que devem estar muito mais próximos do seu sistema local do que servidores convencionais, impulsionando a velocidade do seu fluxo de dados ao diminuir a distância percorrida. Em especial se seu sistema depende de quaisquer conexões com dispositivos menores e de baixa banda, como IoT, você pode mudar seu caching para um ambiente de edge como a Azion para aproveitar todas as vantagens dessa tecnologia de ponta.

Sobre os alicerces de serviços de caching de primeira linha como Nginx e Varnish e inspirados pela flexibilidade do Varnish e a velocidade do Nginx, construímos um conjunto de produtos únicos e compreensíveis para oferecer todo um novo paradigma de caching.

Resumo

Por fim, tanto o Nginx quanto o Varnish são ótimos softwares, os melhores do ramo. Dá para usar qualquer um (ou ambos) da melhor maneira possível. A escolha por algum deles depende das necessidades específicas da sua plataforma digital.

Caso você queira flexibilidade administrativa e amigável por uma configuração distribuída, é melhor dar uma olhada no Varnish. Mas se suas prioridades vão pro lado do poder de pura velocidade e estabilidade, o Nginx pode ser mais adequado para você. E, se você quiser uma abordagem moderna que traz todo o poder para uma edge global, a Azion pode ser exatamente o que você procura.

Qualquer que seja sua escolha, lembre-se de tomar um tempo do seu dia para dar um pouquinho de amor para o servidor proxy na sua vida. Eles trabalham duro, e o seu site não funciona sem eles.