如何配置Passenger在这些要求下运行两个不同的项目? 第一个项目是Redmine(Rails 2.3.11和Ruby 1.8.6),第二个项目就像迷你博客(Rails 3.1.0rc4和Ruby 1.9.2)。
操作系统:Ubuntu服务器
答案 0 :(得分: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 +乘客设置,你将需要配置你的辅助站点(在not-port-80 web服务器上运行)作为代理+反向代理从端口80 http服务器到辅助站点http服务器(例如端口5000)。
我为几个不同的客户端(在不同的生产服务器上)运行此配置并且没有任何问题。在一个案例中,我们使用乘客独立服务器作为辅助红宝石/乘客组合,而不是完整的nginx安装 - 这已被证明是非常稳定的,但创建功能性的初始化脚本可以按照我们想要的方式运行。