gzip_no_buffer
'gzip_no_buffer' 指令禁用 gzip 压缩输出的缓冲。 — NGINX HTTP Core
gzip_no_buffer
httpserverlocation
语法gzip_no_buffer on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`gzip_no_buffer` 指令在 NGINX 中用于控制对进行 gzip 压缩的响应的输出缓冲。当设置为 'on' 时,该指令允许 NGINX 在不先将整个响应缓存在内存中的情况下,直接将压缩后的输出发送给客户端。对于较大的响应或需要实时流式传输数据的场景,这种行为尤其有用,因为它通过在生成数据时即发送给客户端来减少内存使用并可能提高吞吐量。相反,将此指令设置为 'off'(默认值)会启用缓冲,使整个响应在压缩并发送之前保存在内存中,这在优化响应传递方式时可能有利,尤其是当服务器可以从数据去重和压缩效率中受益时。 该指令接受一个标志参数:'on' 或 'off'。启用时,响应会直接发送而不进行缓冲;保持关闭则采用标准的缓冲行为。需要注意的是,在特定场景下关闭缓冲可能会影响性能,尤其是在处理大量并发请求或大型响应时,因为动态压缩数据的开销可能会增加运行负载。
配置示例
http {
gzip on;
gzip_no_buffer on;
}⚠
启用此指令可能会导致资源使用量增加,特别是在许多客户端同时请求大文件时,因为响应不会被缓冲,可能会使服务器的 CPU 和内存资源不堪重负。
⚠
务必在启用此指令的情况下测试应用程序的行为,因为它可能会暴露出流式传输或大响应相关的问题,这些问题以前被缓冲掩盖了。