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

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

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

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

我当前的解决方法是重新引导服务器,并在服务器启动后启动nginx和passenger。

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

有没有人有任何想法

最佳答案

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

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

09-04 05:48
查看更多