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

这一节就到这了。

目录
相关文章
|
12月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
854 90
|
9月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
471 18
|
9月前
|
安全 Linux 定位技术
Curl访问Kerberos SPNEGO保护的HTTP资源
最后,记住,虽然Kerberos的魔法强大且久经考验,但它仍需你谨慎掌握。SPNEGO的舞步看似复杂,但一旦跳起来,你会发现自己在安全和便捷的旋律中翩翩起舞。而Curl,这一灵活敏捷的小工具,它的确有能力成为你施展这些魔法的得力助手。
264 14
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
1115 7
|
10月前
|
存储 数据库 Python
使用HTTP POST协议将本地压缩数据发送到服务器
总的来说,使用HTTP POST协议将本地压缩数据发送到服务器是一个涉及多个步骤的过程,包括创建压缩文件,设置HTTP客户端,发送POST请求,以及服务器端的处理。虽然这个过程可能看起来复杂,但一旦你理解了每个步骤,就会变得相对简单。
352 19
|
11月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
310 22
|
缓存 负载均衡 应用服务中间件
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
2077 20
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
4647 8
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
602 5
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
465 1