【问题标题】:Configuring Passenger with Ruby 1.9.2 + Rails 3.1.0rc4 and Ruby 1.8.6 + Rails 2.3.11使用 Ruby 1.9.2 + Rails 3.1.0rc4 和 Ruby 1.8.6 + Rails 2.3.11 配置乘客
【发布时间】:2011-07-09 16:15:29
【问题描述】:

如何配置Passenger 以在这些要求下运行两个不同的项目? 第一个项目是 Redmine(Rails 2.3.11 和 Ruby 1.8.6),第二个项目类似于迷你博客(Rails 3.1.0rc4 和 Ruby 1.9.2)。

操作系统:Ubuntu 服务器

【问题讨论】:

  • 为什么是乘客?在您的服务器上安装 rvm 并创建一个 .rvmrc 文件,在每个项目的根目录中指定 ruby​​ 版本
  • 我正在使用 rvm,我正在使用 .rvmrc 但是应该在 httpd.conf 中编写哪些配置?

标签: ruby-on-rails apache2 passenger redmine


【解决方案1】:

就个人而言,我更喜欢 nginx 而不是 Apache,但你可以同时使用这两者。

首先,坏消息——你不能通过单个安装 Apache 或 nginx 来做到这一点——乘客是针对你正在使用的单个特定 ruby​​ 解释器编译的。现在,好消息是,既然您已经设置了 rvm,管理多个 ruby​​ 解释器就很简单了。

您需要有两个独立的 http 服务器(Apache 或 nginx)安装 - 一个将是默认的并在端口 80 上应答,另一个需要在另一个端口上应答(这不会被公开使用)。您需要为一个 ruby​​ 和 http 服务器(Apache 或 nginx)编译乘客,为另一个 ruby​​ 和 http 服务器编译另一个乘客(两个 http 服务器都可以是 Apache,都可以是 nginx,或者如果你想让事情变得“有趣” ,您可以各有一个)。我强烈建议您将 ruby​​ 1.9 与您的默认(端口 80)乘客一起使用,因为您在服务器上运行的任何新应用程序都将使用 ruby​​ 1.9+/rails 3+。

一旦您设置好每个 http 服务器 + ruby​​ + 乘客,您需要将辅助站点(在非端口 80 网络服务器上运行)配置为从端口 80 http 服务器到辅助站点的代理 + 反向代理http 服务器(例如端口 5000)。

我为几个不同的客户端(在不同的生产服务器上)运行此配置并且没有任何问题。在一种情况下,我们将乘客独立服务器用于辅助 ruby​​/乘客组合,而不是安装完整的 nginx - 这已被证明是相当稳定的,但创建按我们想要的方式工作的功能性初始化脚本有点有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2012-02-21
    • 2011-07-20
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多