我可以在不影響網站訪客的情況下優雅地重新啟動 httpd、redis 和 php-fpm 嗎?

我可以在不影響網站訪客的情況下優雅地重新啟動 httpd、redis 和 php-fpm 嗎?

我正在透過 Apache httpd、redis 和 php-fpm 的組合運行一個資源相當豐富的基於 Magento 的網站。

當我對核心 PHP 檔案進行更改時,有必要重新啟動上述服務,以確保沒有快取舊程式碼,這可能(並且確實)會搞砸 Magento。

過去,當我剛使用 httpd 時,我只是簡單地運行service httpd graceful以優雅地重新啟動而不影響網站訪問者,但現在我必須重新啟動多個服務(並刷新 redis),網站將有幾秒鐘不可用。

有可能避免這種情況嗎?

答案1

如果你看一下阿帕契文件USR1您將看到 Apache為此使用該訊號。因此,這是一個自訂例程。您必須檢查其他組件的文檔,看看它們是否提供類似的選項。 php-fpm 的一擊是例如我們能否在不干擾其他池的情況下重新載入 PHP-FPM 池之一

如果其中一個元件沒有這樣的選項,您將無法使用單一伺服器/網站來完成此操作。您需要某種叢集或平衡器,它允許您將使用者重新導向到新版本並在一段時間後關閉舊版本。另一種方法可能是安排在某個低流量時間(例如夜間)重新啟動。

相關內容