Wie kann ich vorgezippte Dateien mit nginx bereitstellen, damit sie im Browser als Text angezeigt werden?


17

Ich habe ein paar komprimierte Protokolldateien, die ich gerne mit nginx bereitstellen möchte. Ich möchte, dass sie so bereitgestellt werden, dass sie vom Browser automatisch aufgeblasen werden. Ich gehe davon aus, dass ich nginx brauche, um die Dateien als .gz mit einem text / plain-Header zu senden. Dies kann in Apache mit etwas gemacht werden:

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

Antworten:


24

Sie benötigen dazu das HttpGzipStaticModul. Gib gzip_static on;deine Konfiguration ein und erstelle deine .gzDateien. Sie müssen sowohl die komprimierte als auch die Originaldatei aufbewahren, können dann beispielsweise anfordern /css.cssund die komprimierte Datei erhalten/css.css.gz


Eine kleine Anmerkung: Es wird empfohlen, dass die Änderungszeiten (mtime) beider Dateien gleich sind.
Alexander Azarov

2
Und Sie können testen curl --header "Accept-Encoding: gzip" -I your_url, ob es mit und ohne --header funktioniert.
Tom

Anscheinend funktioniert dieser Ansatz NICHT mit Indizes wie index.html.gz. Wenn Sie ihn mit "index.html.gz" zur Indexliste hinzufügen, wird er als Download bereitgestellt, wenn Sie versuchen, auf "$ url /" zuzugreifen. ". Ich bin immer noch auf der Suche nach einer Lösung, mit der auch gezippte Indizes durchsucht werden können.
Sorin

Die Originaldatei wird nur benötigt, wenn Sie try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html verwenden . Ich versuchte es mit gunzip onund try_files serverfault.com/questions/571733/…
rofrol
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.