-
link - a versão de solicitação HTTP necessária para o gzip compactar as respostas no back-end é por padrão 1.1.
-
link - a versão de solicitação HTTP usada por padrão pelo módulo proxy é 1,0
Isso significa que, por padrão, a solicitação GET 1.1 do navegador se transforma em uma solicitação GET 1.0 quando o proxy a solicita do back-end. O back-end precisa 1.1 para executar a compactação gzip e, portanto, não compacta a resposta.
Minha sugestão é usar proxy_http_version 1.1;
no proxy reverso e as configurações padrão gzip on;
etc. no servidor back-end.
Há duas coisas adicionais para otimizar isso. Uma é a configuração de 'gzip_static' (um módulo extra). Quando uma solicitação é feita para 'index.html', essa configuração procura e entrega um arquivo 'index.html.gz', se existir. Isso tem um impacto positivo no uso da CPU, já que a compactação não é executada em tempo real.
Quanto à outra parte da sua pergunta, o que realmente é compactado é definido com a opção gzip_types. Por padrão, somente texto / html é compactado. Se você tiver arquivos gzip, tenha cuidado para excluí-los. Se você usar a opção *
(compactar tudo), os arquivos compactados também serão compactados com gzip antes de serem enviados. Isso não é ideal para a maioria das imagens (jpg, png, gif), pois elas têm algum tipo de camada de compactação LZW já implementada. A compactação de um arquivo compactado resulta, portanto, apenas em uma pequena diminuição ou até mesmo em um aumento de tamanho, enquanto utiliza recursos significativos da CPU para realizar a compactação. Você deve examinar cuidadosamente o que deseja compactar com base na frequência de solicitações e no tipo de conteúdo solicitado (ou sua taxa de compactação). Em termos de imagens, otimizá-las com ferramentas extras (optipng, etc.) é mais eficaz do que ativar a compactação gzip.