![Nginx 不会因 websocket 连接而停止](https://linux22.com/image/652911/Nginx%20%E4%B8%8D%E4%BC%9A%E5%9B%A0%20websocket%20%E8%BF%9E%E6%8E%A5%E8%80%8C%E5%81%9C%E6%AD%A2.png)
我有 nginx 1.6.2,配置为升级到 websocket 的连接。
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
当没有打开 websocket 连接时,“service nginx stop”起作用,主进程和工作进程都会正常停止。
killproc $prog -QUIT
但是当我打开 websocket 时,nginx 无法停止,即使我得到:
Stopping nginx: [ OK ]
我试过 :
killproc $prog-KILL
但正如预期的那样,第一次运行命令时它会强制杀死主服务器,如果我重新执行,它会强制杀死工作服务器。
您建议如何强制关闭 nginx ?我正在考虑用以下方法替换 killproc :
pkill $prog
答案1
http://nginx.org/en/docs/control.html
尝试使用TERM
或INT
代替KILL
。
KILL
太“快”,它不会给 nginx 的 master 机会来停止 worker。