Apache-2.2

是否有 Apache 或 Nginx 等效於 IIS “drain stop”?

  • April 15, 2014

我來自 .NET 背景,有很多我喜歡它的地方,也有很多我討厭的東西。一般來說,IIS 是我討厭的東西之一。

然而,IIS 的一個非常好的特性是您可以在您的伺服器節點上放置一個“drain stop”。這會將所有新流量重定向到其他節點,但允許目前線上的使用者在完全關閉 IIS 之前完成他們的會話。

這對於在不中斷使用者會話的情況下進行部署非常方便。

在我的新公司,我們不是 .NET 並且喜歡它。我們正在使用 Apache 作為前端,Tomcat 作為我們的後端,在 EC2 上使用 JRuby 和 Java。

有沒有人遇到過任何提供與 Tomcat、Nginx 或 Apache 類似功能的解決方案?

我已經進行了一些搜尋,但無法提出任何有用的資訊。軸2怎麼樣?有沒有人有這方面的經驗?

如果您想關閉本地 Apache 站點,讓目前使用者完成他們目前的任務,請優雅地停止 Apache。我假設您有一些其他架構可以將使用者重定向到另一個運營網站以允許他們繼續(即負載均衡器等)。

從 Apache 網站:

信號:WINCH apachectl -k 優雅停止

" WINCH 或優雅停止信號導致父程序建議子程序在目前請求後退出(或者如果它們沒有提供任何服務則立即退出)。然後父程序將刪除其 PidFile 並停止偵聽所有埠。 parent 將繼續執行,並監視正在處理請求的孩子。一旦所有孩子都已完成並退出或達到 GracefulShutdownTimeout 指定的超時時間,則父母也將退出。如果達到超時,任何剩餘的孩子都將被發送 TERM 信號強制他們退出。

當處於“優雅”狀態時,TERM 信號將立即終止父程序和所有子程序。但是,由於 PidFile 將被刪除,您將無法使用 apachectl 或 httpd 發送此信號。"

引用自:https://serverfault.com/questions/245379