ngx_http_gzip_module

nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。

 

gzip on | off;     启用和禁用gzip压缩,默认关闭
gzip_disable regex 为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。禁用IE6 gzip功能 gzip_disable "MSIE [1-6]\.";
gzip_http_vrsion 1.1; 设定启用压缩功能时,协议的最小版本,默认:1.1
gzip_static      告诉nginx在压缩资源之前,先查找是否有预先gzip处理过的资源。这要求你预先压缩你的文件(在这个例子中被注释掉了),从而允许你使用最高压缩比,这样nginx就不用再压缩这些文件了
gzip_min_length  gzip压缩的最小文件,小于设置值的文件将不会压缩。
gzip_comp_level     设置数据的压缩等级。这个等级可以是1-9之间的任意数值,9是最慢但是压缩比最大的。我们设置为4,这是一个比较折中的设置。(压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了)
gzip_buffers 4 8k;   指定Nginx服务需要向服务器申请的缓存空间的个数*大小,默认32 4k|16 8k;
gzip_types           设置需要压缩的数据格式,默认包含有text/html。 text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied          允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求。gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] …
gzip_vary on | off;    如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”

注意:使用curl --compressed http://www.abc.com curl有关键才能看到压缩,查看访问日志。
 

Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含”Via”的 header头。如 当后端返回的请求头有中Expires就启用压缩。
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
  off – 关闭所有的代理结果数据的压缩
  expired – 启用压缩,如果header头中包含 “Expires” 头信息
  no-cache – 启用压缩,如果header头中包含 “Cache-Control:no-cache” 头信息
  no-store – 启用压缩,如果header头中包含 “Cache-Control:no-store” 头信息
  private – 启用压缩,如果header头中包含 “Cache-Control:private” 头信息
  no_last_modified – 启用压缩,如果header头中不包含 “Last-Modified” 头信息
  no_etag – 启用压缩,如果header头中不包含 “ETag” 头信息
  auth – 启用压缩,如果header头中包含 “Authorization” 头信息
  any – 无条件启用压缩

 

例子

server {
        listen       80;
        server_name  gzip.zjol.com.cn;
        charset utf-8;


        location /gzip{
            root   /data/nginx/html;

        gzip on;
        gzip_comp_level 5;
        gzip_min_length 1k;
gzip_proxied any ;
gzip_types text/plain application/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg ; gzip_vary on; } }

前后对比

[root@localhost7D ~]# curl --head --compressed http://gzip.zjol.com.cn/gzip/001.jpg
HTTP/1.1 200 OK
Server: nginx/1.17.1
Date: Sat, 16 Jul 2022 11:46:28 GMT
Content-Type: image/jpeg
Content-Length: 5311122
Last-Modified: Mon, 15 Nov 2021 08:56:37 GMT
Connection: keep-alive
ETag: "619220c5-510a92"
Accept-Ranges: bytes

 

[root@localhost7D ~]# curl --head --compressed http://gzip.zjol.com.cn/gzip/001.jpg
HTTP/1.1 200 OK
Server: nginx/1.17.1
Date: Sat, 16 Jul 2022 11:45:55 GMT
Content-Type: image/jpeg
Last-Modified: Mon, 15 Nov 2021 08:56:37 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"619220c5-510a92"
Content-Encoding: gzip

 

 

 

 

posted @ 2022-07-16 19:48  yuanbangchen  阅读(69)  评论(0编辑  收藏  举报