Fork me on GitHub

nginx的压缩

使用模块 ngx_http_gzip_module 用gzip方法压缩响应数据,节约带宽

  一、启用或禁用gzip压缩

gzip on | off;

  二、压缩比由低到高:1 到 9, 默认:1

gzip_comp_level level;

压缩比越高,越消耗CPU

  三、匹配到客户端浏览器不执行压缩

gzip_disable regex ...;

示例:ie的1-6版

gzip_disable "MSIE[1-6]\.";  

  四、启用压缩功能的响应报文大小阈值

gzip_min_length length;

针对压缩的大小觉得是否压缩,并不是每个都压缩

  五、设定启用压缩功能时,协议的最小版本,默认:1.1

gzip_http_version 1.0 | 1.1;

  六、支持实现压缩功能时缓冲区数量及每个缓存区的大小,默认:32 4k 或 16 8k

gzip_buffers number size;

  七、指明仅对哪些类型的资源执行压缩操作;即压缩过滤器

默认包含有text/html,不用显示指定,否则出错

gzip_types mime-type ...;

  八、如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”

gzip_vary on | off;

 示例:

vim /etc/nginx/conf.d/test.conf
server {
        access_log /var/log/nginx/a.net.log1 main;
        server_name www.a.net;
        root /data/site1;
        gzip on;
        gzip_comp_level 1;
        gzip_min_length 64;
        gzip_vary on;
        gzip_types text/xml text/css application/javescript;

        location / {
        }
}

测试访问:

  1、查看原文件大小:104857600 

ll /data/site1/test.test
-rw-r--r-- 1 root root 104857600 May 31 18:34 /data/site1/test.html

  2、通过curl命令直接访问

curl www.a.net/test.html

curl命令直接访问是不压缩的

  3、查看日志

192.168.1.4 - - [03/Jun/2021:12:25:33 +0800] "GET /test.html HTTP/1.1" 200 104857600 "-" "curl/7.29.0" "-"

目前的大小和实际的大小是一样的

  4、使用curl 命令 加--compressed

curl --compressed www.a.net/test.html

--compressed    Request compressed response (using deflate or gzip) 请求被压缩的响应(使用deflate或gzip)

  5、查看日志访问

192.168.1.4 - - [03/Jun/2021:12:26:11 +0800] "GET /test.html HTTP/1.1" 200 457792 "-" "curl/7.29.0" "-"

现在的压缩比是1,可以看到现在的大小是457792,相比原来的大小大概是230倍左右,原来大小100兆,现在大小0.436584兆

  6、测试访问,现在压缩比是9 ,压缩比1-9

192.168.1.4 - - [03/Jun/2021:12:31:09 +0800] "GET /test.html HTTP/1.1" 200 102145 "-" "curl/7.29.0" "-"

可以看到现在的访问大小是102145,差不多比原来小一千多倍,原本的一百兆,现在只有0.0974131兆

注释:nginx的压缩是消耗CPU的,压缩比越高,消耗的CPU越高,同时也消耗客户端CPU,好处是可以节省带宽。

 

posted @ 2021-06-03 12:36  Alex-Lzy  阅读(638)  评论(0编辑  收藏  举报