【2022】Nginx使用ngx_http_gzip_module对资源进行压缩

简介: 【2022】Nginx使用ngx_http_gzip_module对资源进行压缩

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

在压缩关闭的情况下用浏览器访问

cf23eba9062c41a6bce60ee3484e3c89.png

在压缩级别为2的情况下查看

image.png

  • 图片较小,压缩不明显,但是可以看到是有效果的。

一个文件压缩示例:

  • 在上例的基础上增加一个对于文件的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文件在站点目录,在不使用压缩情况下查看

8e14e96427f04c9b98411ee660b762a5.png

在压缩为2的情况下查看

059c7629f75b48799945a4d6e8987b76.png

  • 压缩完查看为7.7k,这个效果还是很明显的。

这一节就到这了。

目录
相关文章
|
1月前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
51 4
|
3月前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
181 7
|
4月前
|
监控 网络协议 应用服务中间件
高并发下Nginx压缩
【8月更文挑战第16天】gzip压缩在Nginx中可减少传输数据量,加快响应速度但消耗CPU。可在http、server及location级别配置。高并发时,启用Nginx状态监控以检查性能,配置`nginx.conf`添加`location /NginxStatus { stub_status on; access_log off; }`并重启Nginx
54 12
|
4月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
59 3
|
4月前
|
缓存 安全 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(二)
103 1
|
4月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
75 1
|
4月前
|
负载均衡 应用服务中间件 网络安全
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(一)
716 0
|
4月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
54 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
总结和计划总是让人喜悦或镇痛,一方面以前一段时间没有荒废,能给现在的行动以信心,另一方面看到一年的时间并不能完成很多事情,需要抓紧时间。
617 0