nginx用于启用压缩的内容类型

时间:2016-05-17 05:30:11

标签: nginx compression gzip mime-types content-type

在几个解释“如何设置gzip压缩”的nginx教程网站中,我看到重复的MIME类型列表:

gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

但是,我立即发现此列表未导致Chromium中的JavaScript启用压缩。我必须在列表中添加application/javascript。这让我相信这个名单已经过时了。

是否有我想要gzip的所有内容类型的确切列表?

1 个答案:

答案 0 :(得分:2)

您想要gzip的文件类型没有确切的列表。任何可读为纯文本的文件类型(即非二进制文件)都可以被gzip压缩,因此“权威”列表将是庞大的。因此,它最终取决于您实际所服务的文件类型,您可以通过HTTP Content-Type标头检查任何给定文件。

如果您想要更加确定地覆盖特定扩展程序的所有可能的MIME类型(我认为这是合理的),查看this SO postthis text file包含一个非常详尽的详尽列表。< / p>

重要的是要注意某些二进制文件类型,如.png.pdf(偶数.woff)将压缩合并到格式本身,因此不应该进行gzip压缩(因为这样做可能会生成一个大于原始的压缩文件)。我的经验法则是:如果我的代码编辑器无法将文件读取为UTF-8文本,那么对文件进行gzipping将不是明智的(或者至少它不会非常有效)。

FWIW,我通常在我的网站上gzip以下格式(在我的Apache .htaccess中):

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/xml text/css text/javascript application/javascript application/x-javascript application/json application/xml image/svg+xml
</IfModule>