Module ngx_http_gzip_module

ngx_http_gzip_module模块是使用“ gzip”方法压缩响应的过滤器。这通常有助于将传输数据的大小减少一半甚至更多。

Note

使用 SSL/TLS 协议时,压缩的响应可能会受到BREACH攻击。

Example Configuration

gzip            on;
gzip_min_length 1000;
gzip_proxied    expired no-cache no-store private auth;
gzip_types      text/plain application/xml;

$gzip_ratio变量可用于记录达到的压缩率。

Directives

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

设置用于压缩响应的缓冲区的numbersize。默认情况下,缓冲区大小等于一个内存页。根据平台的不同,它可以是 4K 或 8K。

Note

在 0.7.28 版之前,默认情况下使用四个 4K 或 8K 缓冲区。

Syntax:gzip_comp_level level;
Default:gzip_comp_level 1;
Context:http , server , location

设置响应的 gzip 压缩level。可接受的值范围是 1 到 9.

Syntax:gzip_disable regex ...;
Default:
Context:http , server , location

该指令出现在版本 0.6.23 中。

禁用对带有“ User-Agent”头字段匹配任何指定正则表达式的请求的响应的 gzip 压缩。

特殊掩码“ msie6”(0.7.12)对应于正则表达式“ MSIE [4-6]\.”,但工作更快。从版本 0.8.11 开始,此掩码中不包含“ MSIE 6.0; ... SV1”。

Syntax:gzip_http_version 1.0 | 1.1;
Default:gzip_http_version 1.1;
Context:http , server , location

设置压缩响应所需的最低 HTTP 请求版本。

Syntax:gzip_min_length length;
Default:gzip_min_length 20;
Context:http , server , location

设置将被压缩的响应的最小长度。该长度仅从“ Content-Length”响应头字段中确定。

Syntax:gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
Default:gzip_proxied off;
Context:http , server , location

根据请求和响应为代理请求启用或禁用响应的压缩。请求被代理的事实由“ Via”请求 Headers 字段的存在来确定。该指令接受多个参数:

  • off

    • 禁用所有代理请求的压缩,而忽略其他参数;
  • expired

    • 如果响应头包含“ Expires”字段,并且该值具有禁用缓存的值,则启用压缩;
  • no-cache

    • 如果响应头包含带有“ no-cache”参数的“ Cache-Control”字段,则启用压缩;
  • no-store

    • 如果响应头包含带有“ no-store”参数的“ Cache-Control”字段,则启用压缩;
  • private

    • 如果响应头包含带有“ private”参数的“ Cache-Control”字段,则启用压缩;
  • no_last_modified

    • 如果响应头不包含“ Last-Modified”字段,则启用压缩;
  • no_etag

    • 如果响应头不包含“ ETag”字段,则启用压缩;
  • auth

    • 如果请求 Headers 包含“授权”字段,则启用压缩;
  • any

    • 为所有代理请求启用压缩。

Syntax:gzip_types mime-type ...;
Default:gzip_types text/html;
Context:http , server , location

除“ text/html”外,还对指定的 MIME 类型启用响应的压缩。特殊值“ *”匹配任何 MIME 类型(0.8.29)。始终会压缩“ text/html”类型的响应。

Syntax:gzip_vary on | off;
Default:gzip_vary off;
Context:http , server , location

如果指令gzipgzip_staticgunzip处于活动状态,则启用或禁用插入“ Vary:Accept-Encoding”响应 Headers 字段。

Embedded Variables

$gzip_ratio

  • 获得的压缩率,计算为原始响应大小与压缩响应大小之间的比率。