gunzip
gunzip 指令在 NGINX 中启用或禁用对 gzip 压缩响应的解压缩。
NGINX HTTP Core
·
httpserverlocation
语法gunzip on | off;
默认值off
上下文http, server, location
参数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,因为解压的开销可能抵消带宽节省带来的任何收益。