在服务器上启动多个 Rails 应用程序的简单方法

在服务器上启动多个 Rails 应用程序的简单方法

我的服务器上有多个 rails 应用程序。每个应用程序都使用自己的 rvm gemset。我正在使用薄的作为每个应用程序的 Web 服务器,此服务器作为 gem 单独安装到每个应用程序。每个服务器在不同的端口上运行。主服务器 nginx 充当代理服务器。

我需要通过一些脚本实现以下功能:

  • 运行所有瘦服务器。
  • 启动、停止或重新启动任何服务器。
  • 每分钟(通过 cron)检查一次应用程序是否正常运行(HTTP 状态 200)。如果检查失败,则自动重启应用程序。
  • 每个应用程序都不能访问另一个应用程序的数据。它们应该在 chroot 中启动或由不同的用户启动。
  • 自动生成 nginx 配置。

向系统添加新应用程序应该很容易。

为了实现这一目标您有何建议?

如果需要,Thin 可以用任何其他服务器替换。主 nginx 服务器也用于运行几个 PHP 站点,所以我不想替换它。

我正在考虑使用乘客模块重新编译 nginx 并将其安装为主服务器。如果我这样做,是否可以使用其自己的 ruby​​ 安装和 gemset 来运行每个应用程序?

答案1

要监控和自动重启或执行其他自动反应方法,我会使用 nagios 或冰加。您可能需要自己实施不同的检查和自动反应方法,但这个框架非常灵活,可以随着您的安装而增长。或/和木偶负责配置和安装任务。

在大多数情况下,分开安装不同的用户应该是可以的,我认为这取决于您的安全限制。

相关内容