Como eu sirvo arquivos pré-compactados com nginx para que eles sejam mostrados como texto no navegador?

17

Eu tenho vários arquivos de log compactados que gostaria de servir com o nginx. Quero que eles sejam veiculados de forma que sejam inflados automaticamente pelo navegador. Suponho que isso significa que eu preciso do nginx para enviar os arquivos como .gz com um cabeçalho de texto / sem formatação. Isso pode ser feito no apache com algo como:

<FilesMatch *.gz>
    ForceType text/plain
</FilesMatch>
Ben
fonte

Respostas:

24

Você precisa do HttpGzipStaticmódulo para isso. Coloque gzip_static on;sua configuração e crie seus .gzarquivos. Você precisará manter o arquivo compactado e o arquivo original, poderá solicitar, por exemplo, /css.csse receber o arquivo compactado/css.css.gz

adamse
fonte
Uma observação secundária: é sugerido que os tempos de modificação dos dois arquivos (mtime) sejam os mesmos.
Alexander Azarov
2
E você pode testá-lo curl --header "Accept-Encoding: gzip" -I your_urle, sem o cabeçalho - para verificar, ele ainda serve o arquivo descompactado, se necessário.
Tom
Aparentemente, essa abordagem NÃO funciona com índices como index.html.gz. Se você a adicionar à lista de índices usando "index index.html.gz", ela será veiculada como um download quando você tentar acessar o "$ url / " Ainda estou procurando uma solução que torne os índices compactados em gz também navegáveis.
sorin 30/05
o arquivo original não é necessário, a menos que você use try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Eu tentei com gunzip one try_files serverfault.com/questions/571733/…
rofrol 29/04/19