push_channel_timeout
`push_channel_timeout` 指令设置推送通知通道在无活动情况下保持打开直至超时的最长持续时间。
Scalable, flexible pub/sub server for the modern web
·
httpserverlocation
语法push_channel_timeout time;
默认值none
上下文http, server, location
参数1
说明
push_channel_timeout 指令对于在使用 NGINX 和 Nchan 模块的可扩展 pub/sub 架构中管理通知通道的寿命至关重要。当订阅者打开通知通道时,该通道开始等待发布者发送的消息。push_channel_timeout 值指定通道在未接收数据的情况下可以保持打开的时长,超过该时长服务器将自动关闭通道,从而有效防止因空闲连接导致的资源泄漏。
该超时在保持性能方面很关键,尤其是在订阅者数量可能大量增长的情况下。如果订阅者在指定的超时期间内未能发送或接收任何数据,NGINX 将终止该连接并关闭通道。超时值以秒为单位指定,可根据应用需求调整;对于数据发送零散的应用,较长的超时可能更合适,而在需要将空闲连接最小化的环境中,较短的超时则更有帮助。
该值可在不同的上下文级别设置,例如 http、server 或 location,从而在 NGINX 配置的不同部分对通道的管理提供细粒度控制。这意味着您可以针对高优先级通道设置不同的超时,而对其他可能需要更节约地使用服务器资源的通道设置较短的超时。
配置示例
location /push {
push_channel_timeout 60s;
# other configurations
}⚠
将超时时间设置得过低可能导致通道被过早关闭,特别是对于那些期望不频繁更新的订阅者。
⚠
确保超时时间与您的消息模式相匹配,以防止不必要的断开连接。