开发者

Multiple Ruby versions on one webserver?

The Ideal

Using rvm, it would be awesome to be able to have multiple Rubies on one webserver, and through some sort of server configuration, be able to a开发者_运维百科ssign Ruby versions to different Rails/Sinatra/etc apps on a per-project basis.

I am aware, from rvm's documentation, that Passenger only works with one Ruby at a time. :(

The Compromise

Failing that, it would be nice to at least be able to concoct a way to be able to assign projects to a Ruby 1.8 or a Ruby 1.9 interpreter. I've read that using Nginx as a reverse proxy allows running Apache and Nginx on the same box. Would it then be possible to have Apache+Passenger using one Ruby, and Nginx+Passenger using a different one? Maybe use something other than Passenger with Nginx?

Am I Barking Up the Wrong Tree?

Am I missing a good solution to this issue? Am I walking into a nightmare configuration situation? Is what I want even viable, or is it necessary to run another box to run a separate Ruby version?


check this post: Phusion Passenger & running multiple Ruby versions from official Phusion blog. It's solve the problem by use Passenger Standalone as reverse proxy.


You could use Thin or Unicorn with Nginx. You could than write a god script or some other startup script to set the ruby version per project (or simply start Thin/Unicorn manually).


Use multiple small virtual machines?


What about keeping all your projects (or at least those on one server) on the same ruby version? Be it using an old version or upgrading old projects?

I think, this way you have the fewest problems.


The compromise is possible. You can it this a variety of ways but probably the easiest is a reverse proxy combined with as many chrooted ruby+webserver+rails installs as you find convenient.


If you're using Mac OS X, you may want to check out POW!, which can handle multiple rubies. There's a linux alternative called hoof, which isn't as developed but is getting close.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜