【问题标题】:Running Multiple Versions of Passenger for Multiple Ruby-on-Rails Applications为多个 Ruby-on-Rails 应用程序运行多个版本的 Passenger
【发布时间】:2013-03-26 19:19:03
【问题描述】:

在我安装了Passenger Apache2 模块后,它给了我类似的东西:

LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/passenger/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.17
PassengerRuby /home/passenger/.rvm/wrappers/ruby-1.9.2-p290/ruby

(抱歉,我有一个名为 passenger 的用户帐户。不要混淆。)

因此,如果我想部署另一个使用完全不同版本的 ruby​​ 的 rails 应用程序,那么我相信它会提供与上述配置类似但使用不同 ruby​​ 版本的东西,例如:

LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/passenger/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/passenger/.rvm/wrappers/ruby-1.9.3-p194/ruby

那么我该如何配置 Apache2(我不是在询问虚拟主机部分)?因为LoadModule passenger_module 有两个版本。我不认为一台 Apache2 服务器可以加载两个不同版本的passenger_module,对吧?

我很困惑。请帮帮我。

【问题讨论】:

    标签: ruby-on-rails apache passenger


    【解决方案1】:

    Passenger 从 4.0.0 版开始支持多个 Ruby 解释器。 PassengerRuby 配置选项已成为每个虚拟主机的选项,因此您可以基于每个应用程序自定义 Ruby 解释器。

    对于乘客 3,您必须使用代理。

    【讨论】:

      【解决方案2】:

      对于乘客 3.x: phusion 的一种解决方案是使用 mod_proxy 独立绑定到乘客:http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/ 我不确定 100%,但在 99% 时,您不能加载两个版本的乘客模块,因为它们会特别针对配置变量(如 PassengerRoot、PassengerRuby)发生冲突,这些变量仅限于服务器范围

      【讨论】:

      • 我的服务器要求我不要单独运行乘客 :-( 那里有一些非常棘手的安全问题(负载均衡器上设置了 SSL,我不能对乘客使用反向代理:PassengerEnabled off,@ 987654323@, ProxyPassReverse / http://127.0.0.1:3000)。
      • 我认为在负载均衡器上设置的 SSL 对代理来说不是问题。无论如何尝试 passnger 4,Phusion 说现在你可以为每个虚拟主机定义一个 ruby​​ 版本。我无法给出答案,我没有尝试过。
      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多