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>
Ben
quelle

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

Adam
quelle
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