Bagaimana cara saya menyajikan file pra-gzip dengan nginx sehingga mereka akan ditampilkan sebagai teks di browser?

17

Saya memiliki banyak file log gzip yang ingin saya sajikan dengan nginx. Saya ingin mereka dilayani sedemikian rupa sehingga secara otomatis meningkat oleh browser. Saya berasumsi itu berarti saya perlu nginx untuk mengirim file sebagai .gz dengan header teks / polos. Ini dapat dilakukan di apache dengan sesuatu seperti:

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

Jawaban:

24

Anda memerlukan HttpGzipStaticmodul untuk ini. Masukkan gzip_static on;konfigurasi Anda dan buat .gzfile Anda . Anda perlu menyimpan zip dan file asli, kemudian Anda dapat meminta, misalnya, /css.cssdan dilayani zip/css.css.gz

adamse
sumber
Satu catatan kecil: disarankan bahwa waktu modifikasi kedua file (mtime) adalah sama.
Alexander Azarov
2
Dan Anda dapat mengujinya bekerja curl --header "Accept-Encoding: gzip" -I your_url, dan tanpa - header untuk memeriksanya masih melayani file yang tidak dikompresi jika perlu.
Tom
Tampaknya pendekatan ini TIDAK bekerja dengan indeks seperti index.html.gz, jika Anda menambahkannya ke daftar indeks menggunakan "index index.html.gz", itu akan disajikan sebagai unduhan ketika Anda mencoba mengakses "$ url / ". Saya masih mencari solusi yang akan membuat indeks gzipped juga dapat dijelajahi.
sorin
file asli tidak diperlukan kecuali Anda menggunakan try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Saya mencoba gunzip ondan try_files serverfault.com/questions/571733/...
rofrol