gunzip

gunzip 指令在 NGINX 中启用或禁用对 gzip 压缩响应的解压缩。 — NGINX HTTP Core

gunzip
httpserverlocation
语法gunzip on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

`gunzip` 指令在 NGINX 中用于控制服务器是否在将响应发送给客户端之前自动解压缩 gzip 压缩的 HTTP 响应主体。启用时,NGINX 会解压内容,使不支持 gzip 压缩的客户端能够正确解析响应,而无需在客户端进行额外处理。该指令对于确保与可能无法正确处理 gzip 编码的各种客户端的兼容性非常重要。 `gunzip` 指令以标志作为参数,`on` 启用解压缩,`off` 禁用。该指令可以在 `http`、`server` 和 `location` 上下文中使用,从而根据不同配置对何时解压响应进行精细控制。应谨慎使用此指令;例如,对某些可能被压缩的资源所在的 `location` 开启它可以减少带宽并提高加载速度,但对于非常小的文件可能会引入额外开销。 由于 NGINX 使用 `Content-Encoding` 头来判断响应是否被压缩,`gunzip` 指令与控制压缩过程的 gzip 相关指令配合工作。如果响应未被压缩(即未包含 `Content-Encoding: gzip` 头),`gunzip` 设置不会生效,这意味着无论该指令处于何种状态,原始内容都会按原样发送。启用 `gunzip` 时,用户必须确保上游服务器或应用程序正确设置了用于压缩的头部,以使其完全生效。

配置示例

server {
    listen       80;
    server_name  example.com;

    location / {
        gunzip on;
        proxy_pass http://backend;
    }
}

确保上游服务器发送正确的 `Content-Encoding` 头;否则,`gunzip` 将不会生效。

不要在网络较差的情况下使用 `gunzip`,因为解压可能增加 CPU 开销,导致性能问题。

不要对特别小的文件启用 `gunzip`,因为解压的开销可能抵消带宽节省带来的任何收益。