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,好处是可以节省带宽。
-------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774