为了节省空间,我们对所有日志和文本文件进行了 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 文件作为文本只会导致垃圾输出。