我目前在虚拟专用服务器上部署了一个rails应用程序。
我使用Capistrano,Nginx和乘客在服务器上运行我的rails应用程序。
出于某种原因,在完成上限部署后,我永远无法在网站上显示更新的代码:更新。
部署运行良好,甚至可以通过Vim在实时服务器上看到代码,但如果我导航到实际站点,则无法显示。
我目前的解决方法是重启服务器,在服务器启动后启动nginx和passenger。
我担心的是,如果有人在部署和重新启动时登录到该站点,它将会将其从网站上删除。
有没有人有任何想法
答案 0 :(得分:17)
如果您从rails根目录运行touch tmp/restart.txt
,乘客将重新启动该应用。你不应该重新启动nginx。在restart.txt文件的时间戳更改后,Passenger将重新启动以进行下一个请求。如果您的应用需要一段时间才能启动,您可能需要在触摸文件后立即发出请求来强制执行此操作。
您无需担心会有人离开网站,如果正在处理请求,则无法重新启动服务器。
答案 1 :(得分:0)
如果您仍然遇到问题,可以使用Monit gem,在capstraino中它的效果非常好。