一、开发环境
- 版本: nginx/1.16.1。
二、配置实现
参数详解:
# 开启或关闭gzip模块(实时压缩输出)
gzip on|off;
# 开启或关闭gzip静态文件处理模块(提前压缩,需要nginx中添加上http_gzip_static_module模块)
gzip_static on|off;
# 设置压缩缓冲区大小,例如"gizp_buffers 4 8k"就是设置为4个8k内存作为压缩结果数据流缓存
gzip_buffers number size;
# 设置允许压缩的页面最小字节数; 页面字节数从header头中的Content-Length中进行获取,建议设置成大于1k,小于1k没有压缩的必要.
gzip_min_length length;
# 识别http的协议版本。可以不用配置。
gzip_http_version 1.0|1.1;
# 设置压缩比,可以是0到9中的任一个,级别越高,压缩结果就越小,但同时消耗CPU资源越高,一般折中取6
gzip_comp_level [1-9];
# 设置需要压缩的MIME类型,如果不在设置类型范围内的请求不进行压缩,线上配置时尽可能配置多的压缩类型。
gzip types mime-type [mime-type ...];
# Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含"Via"的 header头。
gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any]
# 配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip_disable "MSIE [1-6]\.";
# 增加vary头
gzip_vary on;
线上配置:
http {
...
# gizp压缩配置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain qpplication/x-javascript text/css application/xml text/javascript application/javascript application/json;
gzip_disable "MSIE [1-6]";
gzip_vary on;
...
}
三、最终效果
未启用gzip时,网站资源访问速度:
启用gizp后: