Gzip vs. cache de proxy reverso

2

Eu tenho um site predominantemente estático rodando em Ruby on Rails que está usando o cache de proxy reverso Varnish para salvar hits no backend do Rails.

O problema é que um usuário pode acessar o site e, quando isso acontece, usamos o ESI (edge side includes) para mostrar partes específicas do usuário da página.

O uso do ESI significa que temos que desabilitar a compressão Gzip no backend do Rails (usando Nginx + passageiro) ou o verniz não pode analisar os dados retornados do backend para executar o processamento do ESI.

Minha pergunta é: os benefícios de usar um cache de proxy reverso superam os benefícios de compactar todo o seu conteúdo? Ou devo tentar me livrar do ESI completo e ter o melhor dos dois mundos?

    
por davidsmalley 15.07.2009 / 12:54

2 respostas

4

Você pode obter o melhor dos dois mundos se organizar as coisas da seguinte forma:

Utilizador - > nginx - > Verniz - > Rails

Ative a compactação gzip de nginx para o usuário. Esse é o segmento mais lento e também o mais caro. Estou assumindo que suas instâncias de nginx, Varnish e Rails são locais entre si. Sua largura de banda local deve ser mais que suficiente. Além disso, não faz muito sentido gzip apenas para descomprimir para montar o ESI.

    
por 15.07.2009 / 13:22
-3

Se a largura de banda não é um problema, e os tempos de carregamento são aceitáveis sem o gzip, você deve definitivamente deixar o gzip desligado.

Gzipping requer muitos recursos da CPU. Então, se você está mais preocupado com a CPU do que com a largura de banda, se o site carrega rápido o suficiente, e se o ESI é uma grande ajuda para você, então definitivamente o sistema de cache de proxy reverso tem mais benefícios do que gzipar respostas http.

Em outras situações, onde a largura de banda é crítica, o gzip pode ser mais importante, mas não parece ser o caso aqui.

Finalmente, o gzip pode ser feito por alguns proxies reversos. Esta é uma ótima possibilidade, porque os proxies reversos geralmente não usam muita CPU (se estiverem em um servidor separado). Isso economiza muitos ciclos de CPU e também economiza largura de banda, mas no momento, e se bem me lembro, o Varnish não suporta gzipping.

    
por 15.07.2009 / 13:20