Estou usando o cache de proxy reverso nginx com o gzip ativado. No entanto, tive alguns problemas com as solicitações HTTP dos aplicativos Android para o meu serviço da web Rails JSON. Parece que quando eu desligo o cache do proxy reverso, ele funciona bem porque o cabeçalho da resposta vem sem o gzip. Portanto, acho que o problema é causado pelo gzip. Qual é o nível mais apropriado de compactação gzip?
gzip on;
gzip_http_version 1.0;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
Eu testei isso no nginx 1.3.9 com dois arquivos, e estes foram os resultados que obtive para os vários níveis:
text/html
- phpinfo ():application/x-javascript
- jQuery 1.8.3 (não compactado):Não tenho certeza de como isso é representativo, mas deve servir como exemplo. Além disso, não levei em consideração o uso da CPU, mas a partir desses resultados o nível de compactação ideal parece estar entre
4
e6
.Além disso, se você usar o
gzip_static
módulo, poderá compactar previamente seus arquivos (em PHP):Isso permite que você obtenha a melhor compactação possível sem sacrificar a CPU em todas as solicitações.
fonte
Se você realmente pode poupar recursos da CPU, pode usar 9, mas para a maioria dos sites um valor 2 é suficiente, pois o gzip não reduz muito o arquivo após o nível 1.
Edit: Eu olhei para o Amazon CloudFront e parece estar usando o nível 6, provavelmente porque esse é o nível que executa a descompactação mais rapidamente, melhorando assim o desempenho de renderização da página.
fonte
Se você possui um site de alto volume e ainda deseja ter um nível completo (9) de compactação, a melhor idéia é colocar seu conteúdo estático no Amazon S3 ou em serviços de armazenamento de objetos semelhantes e fazer upload dos arquivos compactados.
Você ainda gostaria de usar o nginx para compactar seu HTML, então é melhor manter esse valor normal, eu uso 5 lá.
fonte
comp_level
na minha configuração, portanto não sei dizer em que nível estou. Você sabe quais são os padrões? Fonte?