Estou trabalhando com uma organização que implantou o Varnish como um proxy reverso de cache para todo o tráfego da Web. Sua composição de tráfego é composta por muitos sites dinâmicos gerados por clientes, com a coleção usual de ativos estáticos pendentes.
Enquanto estou tentando gostar de verniz (acho que tem uma arquitetura muito boa, em princípio), estou tendo alguns problemas para gerenciá-lo e solucionar problemas à medida que surgem, então estou me perguntando se é realmente a escolha certa. Eu usei o squid no passado como um proxy reverso, mas não no mesmo tipo de função, por isso não tenho uma base clara para comparação.
Minha pergunta é direcionada a pessoas que implantaram verniz na produção ou o avaliaram seriamente em relação às alternativas: você ficou com verniz ou acabou usando outro proxy reverso? Quais foram seus pontos-chave para ficar com ele ou mudar e, se você usou outra coisa, o que acabou usando?
fonte
Respostas:
Bem, eu estou executando o Varnish nos meus servidores da Web, principalmente por razões de desempenho, embora seus recursos de balanceamento de carga sejam úteis também.
Meu caso de uso é armazenado em cache na frente de sites baseados no Django e faz maravilhas pelo desempenho do carregamento de páginas. Consigo atender a maioria das páginas diretamente do cache e lidar com uma enxurrada de visitantes com poucos problemas.
A razão pela qual escolhi o Varnish foi principalmente o desempenho / escalabilidade. Os pontos principais:
Na minha experiência, Varnish tem um desempenho um pouco melhor que o Squid na maioria dos casos, e muito melhor em picos de tráfego. Por outro lado, configurar o Varnish corretamente levará algum tempo para arrastar na lista de emails, já que não há tantas documentações prontas para serem usadas em seu caso de uso específico que circulam pela rede quanto existem. para o Squid - principalmente devido ao verniz ser um projeto relativamente jovem em comparação.
fonte
Passei muito tempo tentando obter o Varnish 1.x estável no hardware padrão linux / dell, ele sempre travava de alguma maneira estranha e seu cão de guarda o reiniciava. O que foi bom, exceto pelo cache conquistado que não estava sendo mantido em nenhum outro lugar ...
Dito isto, você realmente está usando a ferramenta certa para o trabalho? Se você deseja um proxy reverso que armazene em cache os resultados da solicitação (supondo que você esteja fornecendo cabeçalhos de cache de boa qualidade), o verniz é uma boa opção. Espero que tenha ficado mais estável na versão 2.0
No entanto, se você estiver executando um site * onRails e desejar balancear a carga em vários servidores back-end, o HAProxy ou o Nginx pode ser o caminho a seguir. Se você não precisar de nenhuma lógica de URL complicada (redirecionamentos, correspondências de regex para reescrever URLs mais antigas etc.), o HAProxy se ajustará à conta. Se você precisar de algo mais capaz, experimente o nginx.
fonte