Як я можу подати попередньо gzipped файли з nginx, щоб вони відображалися як текст у браузері?


17

У мене є купа gzipped журнальних файлів, які я хотів би подати з nginx. Я хочу, щоб вони обслуговувалися таким чином, щоб браузер автоматично завищувався. Я припускаю, що це означає, що мені потрібно nginx для надсилання файлів у форматі .gz з текстовим / простим заголовком. Це можна зробити в апачі з чимось на зразок:

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

Відповіді:


24

Для цього вам потрібен HttpGzipStaticмодуль. Введіть gzip_static on;конфігурацію та створіть свої .gzфайли. Вам потрібно буде зберегти як заархівований, так і оригінальний файл, потім ви можете надіслати запит, наприклад, /css.cssі подати його на блискавці/css.css.gz


Одне незначне зауваження: пропонується, що час модифікації обох файлів (mtime) однаковий.
Олександр Азаров

2
І ви можете перевірити його роботу curl --header "Accept-Encoding: gzip" -I your_url, і без --header, щоб перевірити, він все ще обслуговує нестиснений файл, якщо це необхідно.
Том

Мабуть, цей підхід НЕ працює з такими індексами, як index.html.gz, якщо ви додасте його до списку індексів за допомогою "index index.html.gz", він буде подаватися як завантаження при спробі доступу до "$ url / ". Я все ще шукаю рішення, яке дозволить зробити gzipped індекси також доступними для перегляду.
sorin

оригінальний файл не потрібен, якщо ви не використовуєте try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Я спробував gunzip onі try_files сервер default.com/questions/571733/…
rofrol
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.