我目前在虚拟专用服务器上部署了Rails应用程序。
我使用Capistrano,Nginx和passenger在服务器上运行Rails应用程序。
出于某种原因,在完成cap deploy:update之后,我永远无法将更新后的代码显示在网站上。
部署进行得很好,甚至可以通过Vim在实时服务器上看到代码,但是如果我导航到实时站点,它将不会显示。
我当前的解决方法是重新引导服务器,并在服务器启动后启动nginx和passenger。
我担心的是,如果我在部署和重新启动时有人登录到该站点,它将把他们从该站点中删除。
有没有人有任何想法
最佳答案
如果您从rails根目录运行touch tmp/restart.txt
,乘客将重新启动该应用程序。您不必重启nginx。在restart.txt文件的时间戳更改之后,Passenger将为下一个请求重新启动。如果您的应用需要一段时间才能启动,则可能需要在触摸文件后立即发出请求来强制执行此操作。
您无需担心将某人踢出网站,如果有正在处理的请求,它也不会重新启动服务器。