最佳实践:RVM 带有多个 Nginx-Passsenger 独立服务器,每个服务器运行一个应用程序

最佳实践:RVM 带有多个 Nginx-Passsenger 独立服务器,每个服务器运行一个应用程序

我想知道托管多个 Rails 应用程序的最佳方法是什么,其中每个应用程序都有不同的 gemset,并且可能使用不同版本的 Ruby。我正在考虑运行 RVM 来管理每个应用程序的不同 gemset,并让每个应用程序在其自己的乘客独立实例上运行。

我对这种方法唯一担心的是运行多个乘客独立服务器的内存占用量,而不是只用一个服务器为所有乘客提供服务。无论如何,我对这些东西还很陌生,所以我愿意听取关于这种设置的最佳做法的建议。

我也读过这个博客文章我想知道大家对此有何看法。这听起来是个合理的设置,并且符合我的强迫症,让我保持整洁,并在应用程序之间保持独立。

答案1

这很简单,因为 Passenger 3.2 将支持不同的 ruby​​ 版本。唯一的问题是,3.2 尚未发布。只需确保设置正确passenger_ruby,RVM/Capistrano 就可以完成剩下的工作。

阅读更多内容:http://ariejan.net/2012/05/11/running-a-different-ruby-with-passenger-3-2-and-rvm

请注意我运行 3.2http://ariejan.net:-)

答案2

我是上述文章的作者。

使用独立的乘客实例或独角兽实例是个好主意,它们具有较低的内存开销并能实现良好的分离。

在最好的情况下,您将以单独的用户身份运行每个应用程序,这将阻止访问其他应用程序的数据。

如果我没记错的话,nginx 的一个实例(它用于独立的乘客)使用了大约 3MB 的 RAM - 在我看来,这非常低。

有新的选项 - Passenger 3.2,它处于测试阶段但它应该允许从一台服务器运行不同的 ruby​​。

相关内容