Nginx ·

Nginx资源压缩

资源传输速度及资源大小严重影响页面渲染加载速度,所以对资源进行压缩是很有必要的,下面来看一下使用Nginx对资源进行压缩,以达到节省带宽资源和加快详情速度,提高系统的吞吐量。

在Nginx配置中提供了三个支持资源压缩的模块 ngx_http_gzip_modulengx_http_gzip_static_modulengx_http_gunzip_module

其中 ngx_http_gzip_module属于内置模块,代表着可以直接使用该模块下的一些压缩指令,后续的资源压缩操作都基于该模块,来看下表的压缩配置参数/指令

参数项 含义 参数值
gzip 开启或关闭压缩机制 on/off
gzip_types 根据文件类型选择性开启压缩机制 image/png、text/css等
gzip_comp_level 用于设置压缩级别,级别越高越耗时 1~9
gzip_vary 设置是否携带Vary:Accept-Encoding头域的响应头部 off/on
gzip_buffers 设置处理压缩请求的缓冲区数量和大小 如16 8k
gzip_disable 针对不同客户端的请求来设置是否开启压缩 如.Chrome.
gzip_http_version 指定压缩响应所需要的最低http请求版本 如 1.1
gzip_min_length 设置触发压缩的文件最低大小 如512k
gzip_proxied 对于后端服务器的响应结果是否开启压缩 off、expired、no-cache

了解了Nginx中的基本压缩配置后,接下来可以在Nginx中简单配置一下

http {
    gzip  on;
    gzip_min_length 1k;
    gzip_comp_level 5;
    gzip_var on;
    gzip_buffers 16 8k;
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
    gzip_disable "MSIE [1-6]\."; #低版本IE浏览器不支持压缩
    gzip_http_version 1.1;
    gzip_proxied: off;
}

在上述的配置中,最后一个 gzip_proxied可根据系统的实际情况决定,总共有以下几种选项:

  • off: 关闭Nginx对后台服务器的响应结果进行压缩
  • expired: 如果响应头中包含Expires信息,则进行压缩
  • no-cache:如果响应头中包含Cache-Control:no-cache信息,则开启压缩
  • no-store:如果响应头中包含Cache-Control:no-store信息,则开启压缩
  • private:如果响应头中包含Cache-Control:private信息,则开启压缩
  • no_last_modified:如果响应头中不包含Last-Modified信息,则开启压缩
  • no_etag:如果响应头中不包含ETag信息,则开启压缩
  • auth:如果响应头中包含Authorization信息,则开启压缩
  • any:无条件对后端的响应结果进行压缩

注意点:对于图片视频类型的数据,会默认开启压缩机制,一般无需再次开启压缩;对于.js文件而言,需要指定压缩类型为
application/javascript

参与评论