加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx-超时后不友好的工作人员终止

发布时间:2020-12-13 20:54:40 所属栏目:Nginx 来源:网络整理
导读:我计划使用nginx代理websocket.当执行nginx reload / HUP时,我知道nginx等待旧的工作进程停止处理所有请求.但是,在websocket连接中,由于连接是持久的,因此可能不会发生很长时间.是否有一个选项/路线图可以在重新加载超时后强行杀死旧的工作进程? 参考文献:

我计划使用nginx代理websocket.当执行nginx reload / HUP时,我知道nginx等待旧的工作进程停止处理所有请求.但是,在websocket连接中,由于连接是持久的,因此可能不会发生很长时间.是否有一个选项/路线图可以在重新加载超时后强行杀死旧的工作进程?

参考文献:

http://nginx.org/en/docs/control.html

http://forum.nginx.org/read.php?21,247651#msg-247651

谢谢

最佳答案
除非您有以下两种解决方案:proxy_read_timeout 1d或ping消息以使连接保持活动状态,否则Nginx会在60秒内关闭连接.选择此默认值是有原因的.

查看Nginx核心开发人员says:

There is proxy_read_timeout (07001)
which as well applies to WebSocket connections. You have to bump it
if your backend do not send anything for a long time. Alternatively,
you may configure your backend to send websocket ping frames
periodically to reset the timeout (and check if the connection is
still alive).

话虽这么说,但没有什么可以阻止您使用USR2 QUIT信号组合的,该组合通常在二进制升级时正常重启Nginx时使用. Nginx主机/工作进程很少会消耗超过50MB的内存,因此保留多个主机并没有那么昂贵. USR2帮助派生新的master和master,然后正常关闭老worker和master.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读