我打算使用nginx來代理websockets。在執行nginx reload/HUP時,我明白nginx會等待舊的工作進程停止處理所有請求。然而,在websocket連接中,由於連接持久,這可能不會發生很長時間。是否有一個選項/路線圖在重新加載超時後強制殺死舊工作進程?nginx - 超時後超級工作者終止
參考文獻:
http://nginx.org/en/docs/control.html
http://forum.nginx.org/read.php?21,247573,247651#msg-247651
感謝
如果確實存在來自後端服務器的定期ping,則連接將不會終止。然而,在你回答之後再次閱讀「Controlling nginx」文檔後,我想在將HUP發送給主nginx並等待幾分鐘後,我可以簡單地將TERM(快速關閉)發送給仍然活着的老員工,以終止它們。 – dux2
是的,USR2信號會分出開始爲新客戶端提供服務的新主服務器,然後,如果由於打開的連接而無法正常關閉,則需要先執行QUIT到舊主服務器,然後再執行INT或TERM信號。 – Anatoly
爲什麼建議使用USR2而不使用HUP,這樣可以在不產生新主人的情況下爲新員工分流? – dux2