适合 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
。