7

理想

使用 rvm,如果能够在一个 web 服务器上拥有多个 Ruby,并且通过某种服务器配置,能够为每个项目分配 Ruby 版本到不同的 Rails/Sinatra/etc 应用程序,那就太棒了。

我知道,从 rvm 的文档中,Passenger 一次只能使用一个 Ruby。:(

妥协

如果做不到这一点,至少能够编造一种能够将项目分配给 Ruby 1.8 或 Ruby 1.9 解释器的方法会很好。我读过使用 Nginx 作为反向代理允许在同一个盒子上运行 Apache 和 Nginx。那么是否有可能让 Apache+Passenger 使用一个 Ruby,而 Nginx+Passenger 使用另一个?也许在 Nginx 中使用Passenger以外的东西?

我在叫错树吗?

我错过了解决这个问题的好方法吗?我是否陷入了噩梦般的配置情况?我想要的甚至是可行的,还是有必要运行另一个盒子来运行单独的 Ruby 版本?

4

6 回答 6

2

检查这篇文章: Phusion 乘客和运行来自官方 Phusion 博客的多个 Ruby 版本。它通过使用Passenger Standalone作为反向代理解决了这个问题。

于 2011-03-15T10:01:54.677 回答
1

使用多个小型虚拟机?

于 2010-06-09T21:44:56.457 回答
1

你可以在 Nginx 中使用 Thin 或 Unicorn。您可以编写一个上帝脚本或其他一些启动脚本来设置每个项目的 ruby​​ 版本(或者简单地手动启动 Thin/Unicorn)。

于 2010-06-07T16:49:07.780 回答
0

如果您使用的是 Mac OS X,您可能需要查看POW!,它可以处理多个红宝石。有一个名为hoof的 linux 替代方案,虽然没有那么发达,但正在接近。

于 2012-01-15T23:57:53.157 回答
0

将所有项目(或至少在一台服务器上的项目)保持在同一个 ruby​​ 版本上怎么样?是使用旧版本还是升级旧项目?

我认为,这样你的问题最少。

于 2010-06-06T18:02:26.430 回答
0

妥协是可能的。你可以通过多种方式实现它,但最简单的可能是反向代理与尽可能多的 chrooted ruby​​+webserver+rails 安装相结合,只要你觉得方便。

于 2010-06-09T21:42:56.130 回答