nchan_permessage_deflate_compression_window 指令配置 Nchan 模块中用于 WebSocket 消息逐条压缩的缓冲区大小。
Nginx 的 Nchan 模块中的 nchan_permessage_deflate_compression_window 指令会影响通过 WebSocket 连接发送消息的压缩行为。具体来说,当应用 deflate 算法进行逐条压缩时,它定义了压缩窗口大小,从而在压缩效率和内存使用之间提供了一种权衡。该指令在需要尽量减小数据传输体积的场景中特别有用,但同时必须在压缩/解压缩的开销与性能之间取得平衡。
启用时,较大的窗口大小通常会带来更好的压缩比,尤其对于重复性较高的数据效果明显。但这也会增加每条消息的内存占用,并可能在消息处理上引入延迟。因此,选择一个与性能与传输数据实际大小之间期望平衡相一致的最优值至关重要。该行为受底层压缩实现的影响,也取决于通过 Nchan 定义的通道中传输的数据性质。
该指令接受一个整数值,用以指定窗口大小(以字节为单位)。根据部署和使用场景,用户可能需要仔细测试不同配置,以为其特定工作负载获得最佳效果。
nchan_permessage_deflate_compression_window 2048;
使用过大的值会导致内存使用量增加,从而影响服务器性能。