一个Web服务器上有多个Ruby版本?

时间:2010-06-06 17:59:27

标签: ruby apache nginx passenger reverse-proxy

理想

使用rvm,能够在一个Web服务器上拥有多个Rubies并且通过某种服务器配置,能够在每个项目的基础上将Ruby版本分配给不同的Rails / Sinatra / etc应用程序将是非常棒的。

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

妥协

如果不这样做,至少可以编写一种能够将项目分配给Ruby 1.8或Ruby 1.9解释器的方法。我已经读过使用Nginx作为反向代理允许在同一个盒子上运行Apache和Nginx。然后是否可以使用一个Ruby使用Apache + Passenger,使用另一个使用Nginx + Passenger?也许在Nginx上使用Passenger以外的东西?

我是否咆哮错误的树?

我错过了解决这个问题的好方法吗?我是否陷入了噩梦配置的境地?我想要的是什么,或者是否有必要运行另一个盒子来运行单独的Ruby版本?

6 个答案:

答案 0 :(得分:2)

查看此帖子:来自官方Phusion博客的Phusion Passenger & running multiple Ruby versions。它通过使用Passenger Standalone作为反向代理来解决问题。

答案 1 :(得分:1)

你可以在Nginx上使用Thin或Unicorn。您可以编写一个神脚本或其他启动脚本来为每个项目设置ruby版本(或者只是手动启动Thin / Unicorn)。

答案 2 :(得分:1)

使用多个小型虚拟机?

答案 3 :(得分:0)

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

我认为,这样你就会遇到最少的问题。

答案 4 :(得分:0)

妥协是可能的。您可以通过多种方式实现这一目标,但最简单的方法可能是反向代理,以及您认为方便的许多chrooted ruby​​ + webserver + rails安装。

答案 5 :(得分:0)

如果您使用的是Mac OS X,则可能需要查看POW!,它可以处理多个红宝石。有一个名为hoof的Linux替代品,它没有开发,但已经接近了。