如何使用 nginx 提供 gizip 压缩的文本文件

如何使用 nginx 提供 gizip 压缩的文本文件

为了节省空间,我们对所有日志和文本文件进行了 gzip 压缩,这些文件可供用户浏览,但这些文件是下载的,而不是在浏览器中打开的,我找不到为text/plain此类文件设置 mime 类型的方法,例如,这不起作用

types {
    text/plain txt txt.gz log.gz
}

那么 nginx 中有没有办法来告知txt.gz文件log.gz将被如何提供text/plain

答案1

设置 nginx gzip_static

例子:

location / {
gzip_static on
}

http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

答案2

这对我有用,基本上根据txt.gz扩展名匹配位置,然后对于这样的文件,设置正确的编码和 mime 类型:

location ~* /my/data/.*txt.gz$ {
    add_header  Content-Encoding  gzip;
    gzip off;
    types { text/plain gz; };
    root /;
}

答案3

Nginx 无法在提供这些文件之前先解压它们。您需要某种脚本来为您执行此操作,然后将结果提供给用户。尝试强制将 .gz 文件作为文本只会导致垃圾输出。

相关内容