2013-02-16 65 views
3

我目前在虚拟专用服务器上部署了一个rails应用程序。我如何使nginx和乘客在部署后自动重启

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

出于某种原因,我无法获取更新后的代码,以便在完成顶端部署之后在网站上显示:更新。

部署情况良好,代码甚至可以通过Vim在活动服务器上看到,但如果我导航到活动站点,它将不会显示。

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

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

没有人有任何想法

回答

17

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

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

0

如果你仍然面临这个问题,你可以使用Monit宝石,在capstraino它的效果非常好。