gzip

gzip 指令在 NGINX 中用于启用或禁用 gzip 压缩。 — NGINX HTTP Core

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

说明

NGINX 的 HTTP Core 模块中的 'gzip' 指令用于控制发送给客户端的响应的 gzip 压缩。启用该指令后,NGINX 会使用 gzip 算法对响应进行压缩,这可以显著减小传输数据的大小并改善客户端的加载时间。服务器会检查允许的内容类型和客户端的能力(例如是否存在 'Accept-Encoding: gzip' 头)来决定是否以压缩数据响应。 该指令可取布尔值:设置为 'on' 时启用 gzip 压缩,设置为 'off' 时禁用。此外,NGINX 提供了若干配置参数以进一步细化 gzip 压缩的行为,例如 'gzip_types' 用于指定要压缩的 MIME 类型,'gzip_vary' 用于指示是否向响应添加 Vary 头以表明对不支持 gzip 的客户端存在不同版本。使用 gzip 有助于降低带宽成本并提升用户体验,尤其对 HTML、CSS 和 JavaScript 等基于文本的文件效果明显。 需要谨慎使用 gzip 压缩,因为并非所有内容类型都适合压缩,过度使用可能会在服务器端引入不必要的 CPU 开销。

配置示例

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

确保在编译 NGINX 时包含 gzip 模块,因为在某些构建中它可能被排除。

对已压缩的文件(例如 JPEG 图像)进行过度压缩不会带来任何好处,甚至可能增加文件大小。

请记得检查客户端兼容性;某些客户端可能不支持 gzip,因此其响应将不会被压缩。