【发布时间】:2011-02-28 10:32:17
【问题描述】:
理想
使用 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 版本?
【问题讨论】:
-
我不确定这是否可行,但是为每个要在每个不同的 ruby 下运行的进程使用单独的用户帐户(或者每个 ruby 可能只有 1 个用户?)将是一个好的开始.
-
虚拟化是一种选择吗?如果有一个原因你不能运行多个 Ruby 版本,你可以用另一个版本运行一个虚拟服务器,这样每个操作系统安装只有一个。
标签: ruby apache nginx passenger reverse-proxy