¿Cómo sirvo archivos precomprimidos con nginx para que se muestren como texto en el navegador?


17

Tengo un montón de archivos de registro comprimidos que me gustaría servir con nginx. Quiero que se sirvan de tal manera que el navegador los infle automáticamente. Supongo que eso significa que necesito nginx para enviar los archivos como .gz con un encabezado de texto / sin formato. Esto se puede hacer en apache con algo como:

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

Respuestas:


24

Necesitas el HttpGzipStaticmódulo para esto. Pon gzip_static on;tu configuración y crea tus .gzarchivos. Deberá conservar tanto el archivo comprimido como el original, luego puede solicitar, por ejemplo, /css.cssy recibir el archivo comprimido/css.css.gz


Una nota menor: se sugiere que los tiempos de modificación de ambos archivos (mtime) sean los mismos.
Alexander Azarov

2
Y puede probar que está funcionando curl --header "Accept-Encoding: gzip" -I your_url, y sin el encabezado para verificar que aún sirve el archivo sin comprimir si es necesario.
Tom

Aparentemente, este enfoque NO funciona con índices como index.html.gz, si lo agrega a la lista de índices utilizando "index index.html.gz", se servirá como una descarga cuando intente acceder a "$ url / ". Todavía estoy buscando una solución que también haga navegables los índices comprimidos.
Sorin

el archivo original no es necesario a menos que use try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Lo intenté con gunzip ony try_files serverfault.com/questions/571733/…
rofrol
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.