如何在部署后自动重启nginx和passenger?

3

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

我使用Capistrano、Nginx和Passenger在服务器上运行我的Rails应用。

但是,每次我执行cap deploy:update后,无论如何都不能在网站上显示更新的代码。

尽管部署成功,并且通过Vim在实时服务器上看到了代码,但如果我浏览实时网站,它就不会显示。

我的当前解决方法是在服务器重启后,启动nginx和passenger。但我的担心是,如果有人在我部署和重启时登录到网站,那么他们将被踢出网站。

请问有没有什么好的解决方法?

2个回答

18

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

您不需要担心让某个人退出该网站,如果有正在进行的请求,它将不会重新启动服务器。


0
如果你仍然面临问题,你可以使用Monit gem,在capstraino中它非常有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接