ngx_http_gzip_module
该模块是一个过滤器,它使用“gzip”方法压缩响应。这通常有助于将传输数据的大小减少一半甚至更多,缺点是会占用cpu资源。
可进行图片或文件的压缩。
使用语法:
- 开启或关闭:
Syntax: gzip on | off; Default: gzip off; Context: http,server,location,if in location
- 压缩的缓冲区大小:默认缓冲区大小等于一个内存页
Syntax: gzip_buffers number size; Default: gzip_buffers 32 4k|16 8k; Context: http,server,location
- 压缩级别:级别越高,消耗CPU越大,最大是9
Syntax: gzip_comp_level level; Default: gzip_comp_level 1; Context: http,server,location
- 设置压缩响应的最低http版本,默认1.1
Syntax: gzip_http_version 1.0 | 1.1; Default: gzip_http_version 1.1; Context: http,server,location
- 设置最低达到什么程度开始压缩
Syntax: gzip_min_length length; Default: gzip_min_length 20; Context: http,server,location
- 支持的压缩类型:mime.types文件中是支持压缩的类型
Syntax: gzip_types mime-type ...; Default: gzip_types text/html; Context: http,server,location
- 启用或禁用插入“Vary: Accept-Encoding”响应标头字段
Syntax: gzip_vary on | off; Default: gzip_vary off; Context: http,server,location
一个图片压缩示例:
- 创建一个站点:其中压缩的类型根据需求补充
server { listen 80; server_name gzip.yyang.com; root /data/gzip; location / { index index.html index.htm; } location ~ \.(jpg|png|jpeg) { gzip off; gzip_http_version 1.1; gzip_comp_level 2; gzip_min_length 10k; gzip_types image/gif image/jpeg image/png; gzip_vary on; } }
- 将一张1.*M的图片放入站点目录
[root@centos7 conf.d]# cd /data/gzip/ [root@centos7 gzip]# ls index.html [root@centos7 gzip]# rz -E rz waiting to receive. [root@centos7 gzip]# ll 总用量 1368 -rw-r--r-- 1 root root 14 7月 24 16:19 index.html -rw-r--r-- 1 root root 1393464 7月 24 15:58 shan.jpg
在压缩关闭的情况下用浏览器访问
在压缩级别为2的情况下查看
- 图片较小,压缩不明显,但是可以看到是有效果的。
一个文件压缩示例:
- 在上例的基础上增加一个对于文件的location
location ~ .*\.(txt|pdf)$ { gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_min_length 10k; gzip_types text/plain application/pdf application/msword; gzip_vary on;
我放了一个txt文件在站点目录,在不使用压缩情况下查看
在压缩为2的情况下查看
- 压缩完查看为7.7k,这个效果还是很明显的。
这一节就到这了。