Comment puis-je servir des fichiers pré-compressés avec nginx afin qu'ils soient affichés sous forme de texte dans le navigateur?


17

J'ai un tas de fichiers journaux gzippés que j'aimerais utiliser avec nginx. Je veux qu'ils soient servis de telle manière qu'ils soient automatiquement gonflés par le navigateur. Je suppose que cela signifie que j'ai besoin de nginx pour envoyer les fichiers au format .gz avec un en-tête text / plain. Cela peut être fait en apache avec quelque chose comme:

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

Réponses:


24

Vous avez besoin du HttpGzipStaticmodule pour cela. Mettez gzip_static on;votre configuration et créez vos .gzfichiers. Vous devrez conserver à la fois le fichier compressé et le fichier d'origine, vous pouvez alors demander, par exemple, /css.csset recevoir le fichier compressé/css.css.gz


Une remarque mineure: il est suggéré que les temps de modification des deux fichiers (mtime) soient les mêmes.
Alexander Azarov

2
Et vous pouvez tester qu'il fonctionne avec curl --header "Accept-Encoding: gzip" -I your_urlet sans l'en-tête - pour vérifier qu'il sert toujours le fichier non compressé si nécessaire.
Tom

Apparemment, cette approche ne fonctionne PAS avec des index comme index.html.gz, si vous l'ajoutez à la liste des index en utilisant "index index.html.gz", elle sera servie en téléchargement lorsque vous essayez d'accéder à "$ url / ". Je suis toujours à la recherche d'une solution qui rendrait également les index gzippés navigables.
sorin

le fichier d'origine n'est pas nécessaire sauf si vous utilisez try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . J'ai essayé avec gunzip onet try_files serverfault.com/questions/571733/…
rofrol
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.