部署 nginx + passenger 部署多个 ruby 版本项目的问题

Richie · 2012年03月08日 · 最后由 chitsaou 回复于 2012年03月23日 · 6440 次阅读

我本地用 rvm 管理 2 个不同版本的项目 分别是 ruby1.8.7 + rails3.0 和 ruby1.9.3 + rails3.2.2 现在要往同一个服务器上部署,大家都知道在 nginx 中 passenger_root /home/user/.rvm/gems/ruby-1.9.3-head/gems/passenger-3.0.11; passenger_ruby /home/user/.rvm/wrappers/ruby-1.9.3-head/ruby; 以上 2 行只能指定一个 ruby 版本下的 passenger, 这样另外一个就无法运行了。

在 stackoverflow 上搜索了类似的问题 http://stackoverflow.com/questions/2985241/multiple-ruby-versions-on-one-webserver 也都没有很好的解决方法 答案中提到一个博客 http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/ 其中说是通过 proxy 的方式来解决这个问题,但是要 passenger 以 Standalone 的方式单独开启

不知道大家有没有在这种情况下的更好的部署方法。

简单做法就是一个用 Passenger 跑,一个用 Thin 跑,就可以用不同的版本了。

apache2+unicorn

没有试过。帮顶了。

听说 mac 下的 pow 有这个效果,不知道是怎么实现的。

我是用 Passenger Standalone 跑,不过每次 start 的速度很坑爹。准备试试 thin/unicorn.

最前端用 haproxy 后面每个版本的起一个 nginx+passenger

我也曾经研究过这个问题, http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/ 《passenger 以 Standalone 的方式单独开启》这篇文章,也是我找到的最终答案。

我也非常想知道有没有更好的解决方案。

#1 楼 @huacnlee 是说 passenger 只能跑一个项目?我没有用 passenger 配过项目,只是在网上看到了一些配置说明,我想问一下,passenger 是如何找到项目所在路径,去解析 ruby 代码的?

虽然不清楚,但是顶敏兄

需要 登录 后方可回复, 如果你还没有账号请 注册新账号