Как обслуживать предварительно сжатые файлы с помощью nginx, чтобы они отображались в виде текста в браузере?

17

У меня есть куча gzipped журналов, которые я хотел бы использовать с nginx. Я хочу, чтобы они обслуживались таким образом, чтобы браузер автоматически их раздувал. Я предполагаю, что это означает, что мне нужен nginx для отправки файлов в формате .gz с заголовком text / plain. Это может быть сделано в Apache с помощью чего-то вроде:

<FilesMatch *.gz>
    ForceType text/plain
</FilesMatch>
Бен
источник

Ответы:

24

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

adamse
источник
Небольшое замечание: предполагается, что время модификации обоих файлов (mtime) одинаковое.
Александр Азаров
2
И вы можете проверить, что он работает curl --header "Accept-Encoding: gzip" -I your_url, и без --header, чтобы проверить, что он все еще обслуживает несжатый файл, если это необходимо.
Том
По-видимому, этот подход НЕ работает с индексами, такими как index.html.gz, если вы добавите его в список индексов с помощью «index index.html.gz», он будет загружен при попытке доступа к «$ url / ». Я все еще ищу решение, которое сделало бы индексы GZIPS доступными для просмотра.
сорин
оригинальный файл не требуется, если вы не используете try_files mailman.nginx.org/pipermail/nginx/2012-June/034102.html . Я попытался с gunzip onи try_files serverfault.com/questions/571733/...
rofrol