【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,这个效果还是很明显的。

这一节就到这了。

目录
打赏
0
0
0
0
32
分享
相关文章
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
196 90
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
294 7
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
444 20
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
1223 8
https页面加载http资源的解决方法
https页面加载http资源的解决方法
123 5
https页面加载http资源的解决方法
https页面加载http资源的解决方法
143 4
https页面加载http资源的解决方法
https页面加载http资源的解决方法
273 7
高并发下Nginx压缩
【8月更文挑战第16天】gzip压缩在Nginx中可减少传输数据量,加快响应速度但消耗CPU。可在http、server及location级别配置。高并发时,启用Nginx状态监控以检查性能,配置`nginx.conf`添加`location /NginxStatus { stub_status on; access_log off; }`并重启Nginx
86 12
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
128 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等