3

我目前在虚拟专用服务器上部署了一个 Rails 应用程序。

我使用 Capistrano、Nginx 和乘客在服务器上运行我的 rails 应用程序。

出于某种原因,在我完成 cap deploy:update 之后,我永远无法在网站上显示更新的代码。

部署进行得很好,甚至可以通过 Vim 在实时服务器上看到代码,但是如果我导航到实时站点,它将不会显示。

我目前的解决方法是重新启动服务器,在服务器重新启动后启动 nginx 和乘客。

我担心的是,如果有人在我部署并重新启动时登录到该站点,它会将他们从该站点中删除。

有没有人有任何想法

4

2 回答 2

18

如果您touch tmp/restart.txt从 Rails 根目录运行,则乘客将重新启动应用程序。您不必重新启动 nginx。在 restart.txt 文件的时间戳发生变化后,Passenger 将重新启动下一个请求。如果您的应用程序需要一段时间才能启动,您可能希望通过在触摸文件后立即发出请求来强制执行此操作。

您无需担心将某人踢出站点,如果正在处理请求,它不会重新启动服务器。

于 2013-02-16T22:58:11.040 回答
0

如果您仍然面临问题,您可以使用 Monit gem,在 capstraino 中它工作得非常好。

于 2015-06-04T06:22:38.017 回答