Come posso fornire file pre-compressi con nginx in modo che vengano visualizzati come testo nel browser?


17

Ho un sacco di file di log compressi con gzip che vorrei servire con nginx. Voglio che vengano offerti in modo tale da essere automaticamente gonfiati dal browser. Presumo che ciò significhi che ho bisogno di nginx per inviare i file come .gz con un'intestazione text / plain. Questo può essere fatto in apache con qualcosa di simile:

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

Risposte:


24

È necessario il HttpGzipStaticmodulo per questo. Inserisci la gzip_static on;tua configurazione e crea i tuoi .gzfile. Dovrai conservare sia il file zippato che il file originale, ad esempio puoi richiedere /css.csse ricevere il pacchetto zippato/css.css.gz


Una piccola nota: si suggerisce che i tempi di modifica di entrambi i file (mtime) siano gli stessi.
Alexander Azarov

2
E puoi provare che funziona curl --header "Accept-Encoding: gzip" -I your_url, e senza l'intestazione - per verificare che serva comunque il file non compresso, se necessario.
Tom,

Allo stesso modo questo approccio NON funziona con indici come index.html.gz, se lo aggiungi all'elenco di indici usando "index index.html.gz", verrà servito come download quando provi ad accedere a "$ url / ". Sto ancora cercando una soluzione che possa rendere navigabili anche gli indici gzip.
sorin,

il file originale non è necessario a meno che non si usi try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Ho provato con gunzip one try_files serverfault.com/questions/571733/…
rofrol il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.