我的服务器上有多个 rails 应用程序。每个应用程序都使用自己的 rvm gemset。我正在使用薄的作为每个应用程序的 Web 服务器,此服务器作为 gem 单独安装到每个应用程序。每个服务器在不同的端口上运行。主服务器 nginx 充当代理服务器。
我需要通过一些脚本实现以下功能:
- 运行所有瘦服务器。
- 启动、停止或重新启动任何服务器。
- 每分钟(通过 cron)检查一次应用程序是否正常运行(HTTP 状态 200)。如果检查失败,则自动重启应用程序。
- 每个应用程序都不能访问另一个应用程序的数据。它们应该在 chroot 中启动或由不同的用户启动。
- 自动生成 nginx 配置。
向系统添加新应用程序应该很容易。
为了实现这一目标您有何建议?
如果需要,Thin 可以用任何其他服务器替换。主 nginx 服务器也用于运行几个 PHP 站点,所以我不想替换它。
我正在考虑使用乘客模块重新编译 nginx 并将其安装为主服务器。如果我这样做,是否可以使用其自己的 ruby 安装和 gemset 来运行每个应用程序?