压缩对象: 纯文本如:html ,js ,css,xml,shtml等格式文件,纯文本必须大于1kb,由于算法原因极小的文件压缩可能变大
图片,视频(流媒体)文件不要压缩,因为这些文件大多已经压缩过,可能不会减小或减小很少,或者可能增大,而在压缩时还会消耗大量的CPU,内存等资源
依赖于ngx_http_gzip_module模块,默认已安装
nginx gzip 配置如下
gzip on; #开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩文件缓冲区 4个单位为16k的结果流缓存
gzip_comp_level 2; #压缩等级 1压缩比最小,9压缩级别最大
#gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php text/html; #指定压缩类型 参考mine.types
gzip_vary off; #on表示让前端的缓存服务器,可以缓存gzip出来的页面,不解压
用curl命令测试是否压缩成功
curl -I -H "Accept-Encoding: gzip,deflate" "https://fitness.nis.cn/dist/vender-base.7837a814beed50d6eed2.js"
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 22 Feb 2019 01:50:07 GMT
Content-Type: application/javascript
Last-Modified: Thu, 21 Feb 2019 08:23:26 GMT
Connection: keep-alive
ETag: W/"5c6e5ffe-98db3"
Content-Encoding: gzip
gzip压缩成功
网站打开速度下降