【发布时间】:2013-12-23 09:22:52
【问题描述】:
大约 6 个月前,我在运行 nginx/passenger 的 Ubuntu 上配置了我的 Rails 3 生产应用程序,使用 git 和 Capistrano 进行部署。
快进到上周 - 我使用的数据中心 (DigitalOcean NYC) 实际上完全断电(并且备用电池不起作用) - 导致我的服务器完全关闭。
我没有设置passenger或mysql在重启时启动,所以当硬件服务器重启时,我的应用仍然宕机。
当我启动它时,我真的不太了解我在做什么(因为它是我使用的第一台生产服务器),我按照指南启动并运行它。
当我试图让应用程序再次运行时,我成功地启动了 mysqld - 但我一生都不记得如何让 nginx/passenger 再次运行。
由于时间至关重要(我的客户需要应用程序尽快启动并运行),我最终通过导航到我的应用程序目录 (/current) 并使用以下命令让应用程序恢复运行:
passenger start -p 80 -e production
这成功了,但实际上启动了Passenger Standalone。它似乎工作正常(它根本不是一个大或复杂的应用程序,一次可能只有几个用户)。我可以导航回我的目录并使用上述命令(和乘客 stop -p 80)启动和停止它。
但是,现在我的 capistrano deploy (cap deploy) 不再在部署时重新启动服务器(它正在尝试运行 touch tmp/restart.txt)——即使我尝试手动运行,它也不会执行任何操作,因为服务器是独立运行乘客。
我不记得我最初是如何启动并运行服务器的,因为那是很久以前的事了。我没有使用 RVM - 只是直接在服务器上运行的 Ruby 版本。
有人知道在 Ubuntu 上启动 nginx/passenger(非独立)的正确命令吗?
更进一步——如何让 mysqld 和 nginx/passenger 在服务器硬重启时自动加载?
【问题讨论】:
标签: ruby-on-rails ubuntu deployment nginx passenger