2013-02-16 73 views
3

我目前在虛擬專用服務器上部署了一個rails應用程序。我如何使nginx和乘客在部署後自動重啓

我使用Capistrano,Nginx和乘客在服務器上運行我的Rails應用程序。

出於某種原因,我無法獲取更新後的代碼,以便在完成頂端部署之後在網站上顯示:更新。

部署情況良好,代碼甚至可以通過Vim在活動服務器上看到,但如果我導航到活動站點,它將不會顯示。

我目前的解決方法是重新啓動服務器,在服務器啓動備份後啓動nginx和乘客。

我擔心的是,當我部署並重新啓動時,如果有人登錄到該網站,它會將他們從網站中刪除。

沒有人有任何想法

回答

17

如果您從軌道根目錄下運行touch tmp/restart.txt,乘客將重新啓動應用程序。你不應該重新啓動nginx。在restart.txt文件的時間戳發生更改後,Passenger將爲下一個請求重新啓動。如果您的應用程序需要一段時間才能啓動,您可能需要在觸摸文件後立即發出請求來強制執行此操作。

您不需要擔心將某人踢出站點,如果有請求正在進行,它將不會重新啓動服務器。

0

如果你仍然面臨這個問題,你可以使用Monit寶石,在capstraino它的效果非常好。