适合 gzip 压缩的情况

压缩的好处都知道,传输资源体积减小,传输时间成本降低,消耗的流量降低,一定程度上提升网站用户体验。

但不是所有情况下都适合开启 gzip 压缩的,比如前端的资源如 css,js 之类都被 webpack 打包过了,单个文件已经足够小的情况下,或者都是些压缩率较低的文件(图片、音频、视频、pdf等等)。

这些情况就不合适或者没有必要,因为开启 gzip 压缩本身也是要消耗服务器 cpu 资源的。

如果只是测试 gzip 压缩这一特性,那就无所谓了。

Nginx 设置 gzip 压缩

gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

放在 server 内,server_name 下面就好。

Apache 设置 gzip 压缩

<IfModule deflate_module>
    # 告诉 apache 对传输到浏览器的内容进行压缩
    SetOutputFilter DEFLATE
    # 压缩等级 9 最低是1,不建议按最大级别进行压缩,压缩率过高会占更多CPU资源
    DeflateCompressionLevel 6
    # 设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    # 压缩类型 html、xml、php、css、js 面的文件MIME类型可以根据自己情况添加
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
    AddOutputFilter DEFLATE js css
</IfModule>

测试过,Apache 2.2.27 下,将配置放在 httpd.conf(Apache 配置文件)末尾,gzip 生效;放在项目目录下的 .htaccess 中,直接报错 500 Internal Server Error