Nginx ngx_http_gzip_module模块的使用
  DhmaJjT07YqF 2023年11月02日 46 0

介绍

ngx_http_gzip_module模块通过“gzip”方法来压缩响应(responses),减小数据传输的大小。传输过程中的数据减少了,使用的IO自然就会降低,性能上也会有提升。

注意,官网上介绍,在使用了SSL/TLS协议后,压缩响应(responses)可能会受到BREACH攻击。

指令

各位看到指令可能会有点陌生,就简单的把它理解为参数就行了。这些指令定义了gzip压缩响应的前提、参数等。

解下来简单叙述一下ngx_http_gzip_module模块的指令及用法。

gzip

语法

gzip parameter;

默认值

off

可选值

on、off

gzip指令定义是否压缩响应(response)。

gzip_buffers

语法

gzip_buffers number size;

默认值

32 4k|16 8k

gzip_buffers指令定义压缩响应(response)的缓冲区数量和大小。

注意,默认值的大小是内存页面的大小,具体取决于操作系统。

gzip_comp_level

语法

gzip_comp_level level;

默认值

1

可选值

1-9

gzip_comp_level指令定义压缩响应(response)的压缩级别。

gzip_disable

语法

gzip_disable level;

默认值


gzip_disable指令定义正则表达式,匹配正则表达式的会禁止请求头是“User-Agent”的响应进行压缩。

gzip_http_version

语法

gzip_http_version level;

默认值

1.1

可选值

1.0,1.1

gzip_http_version指令定义http的版本,请求版本低于该值时不压缩。


gzip_min_length

语法

gzip_min_length length;

默认值

20

gzip_min_length指令定义响应的最小长度,低于该值的响应不进行压缩。最小长度只会根据响应头(response header)字段“Content-Length”来确定。

gzip_proxied

语法

gzip_proxied parameter;

默认值

off

可选值

off,expired,no-cache,no-store,private,no_last_modified,no_etag,auth,any

gzip_proxied指令定义什么类型的响应头才会启用压缩。

该指令有多个参数可用:

  • off 禁用所有代理请求的压缩,忽略其它参数。
  • expired 响应头包含禁用缓存“expired”关键字,则启用压缩。
  • no-cache 响应头包含“Cache-Control:no-cache”关键字,则启用压缩。
  • no-store 响应头包含“Cache-Control:no-store”关键字,则启用压缩。
  • private 响应头包含“Cache-Control:private”关键字,则启用压缩。
  • no_last_modified 响应头不包含“Last-Modified”关键字,则启用压缩。
  • no_etag 响应头不包含“ETag”关键字,则启用压缩。
  • auth 响应头包含“Authorization”关键字,则启用压缩。
  • any 所有代理请求启用压缩。

gzip_types

语法

gzip_types length;

默认值

text/html

gzip_types指令定义响应的MIME类型。特殊值*表示任何MIME类型,并且始终会对text/html类型的响应进行压缩。

gzip_vary

语法

gzip_vary parameter;

默认值

off

可选值

off,on

gzip_vary指令定义是否在响应头上插入“Vary: Accept-Encoding”。

注意,插入响应头的前提是gzip、gzip_static、gunzip指令是激活的状态,或者说是这三个参数使用后才能配置gzip_vary。

嵌入变量

除上面的指令外,ngx_http_gzip_module模块还提供了一个变量,该变量主要是用来获取压缩率。

$gzip_ratio

$gzip_ratio是计算原始响应大小和压缩响应大小之间的比率,也可以简单理解为压缩率。

嵌入变量用法

使用该变量也很简单,通常是用在日志中输出,来显示压缩率。

[root@localhost conf]# vim nginx.conf

log_format  main '"$gzip_ratio"'

使用

在配置文件nginx.conf中新增指令即可。

[root@localhost conf]# vim nginx.conf

gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 1;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  P3nxyT0LRuwj   2023年11月28日   25   0   0 nginxhtmlWeb
  jnZtF7Co41Wg   2023年12月11日   29   0   0 nginx客户端服务端
  jnZtF7Co41Wg   2023年11月28日   19   0   0 nginx文件名linux命令
  stLBpDewCLT1   2023年12月08日   28   0   0 nginx
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  eHipUjOuzYYH   2023年12月06日   26   0   0 nginxHTTP
  eHipUjOuzYYH   2023年12月06日   23   0   0 nginx加载IPV6