在一个专用服务器上运行两个不同的Rails应用程序

我有一个具有以下配置的专用服务器

i3 - Dual Core - 3.06Ghz H/T 16GB RAM 500GB SATA2 

现在我想在一个专用服务器上执行两个不同的Rails应用程序。 两个应用程序都不同,但它们使用的是通用数据库。

有可能吗? 如果是的话 – 我该怎么做? 使用Apache的Phusion Passenger是一个很好的方法吗? 如果是 – 如何使用一个Phusion Passenger服务器配置两个应用程序?

我将描述如何在一台Linux服务器上运行多个Rails应用程序,使用Apache,Phusion Passenger和某些版本的Ruby。 你有很多选择,但这应该可以帮助你开始。 其中许多细节来自安装脚本

首先,安装Phusion Passenger。

 > gem install passenger 

其次,构建Apache 2 Passenger模块。 您应该能够执行第一步中安装的以下脚本。

 > passenger-install-apache2-module 

该脚本将编译Apache 2模块并解释如何配置Apache。 如果缺少依赖项,脚本应提供有关如何安装它们的一些有用建议。

第三,编辑Apache配置文件。 我必须添加这样的东西。 (只需使用它作为参考,不要担心.rvm)在第二步中运行的脚本将为您提供可以复制和粘贴的内容。

 LoadModule passenger_module /Users/me/.rvm/gems/ree/gems/passenger-3.0.9/ext/apache2/mod_passenger.so PassengerRoot /Users/me/.rvm/gems/ree/gems/passenger-3.0.9 PassengerRuby /Users/me/.rvm/wrappers/ree/ruby 

第四,将这样的内容添加到您要运行的每个应用程序的 Apache配置文件

  ServerName app1.example.com DocumentRoot /somewhere/app1/public # <-- be sure to point to 'public'!  AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off   

如果您有两个Rails应用程序共享一个数据库,那么它们将在config / database.yml中具有类似的连接信息

是的,这绝对是可能的。 我从未使用Passenger + Apache做过,但我确信这是一个好方法。 我只用thin + nginx做过。

使用Apache的Passenger Phusion是一种可靠的方法。 他们使用相同数据库这一事实应该不是问题(只要确保它们不以任何方式相互踩踏)。

通常,只需正常设置,但请查看基于Apache名称的虚拟主机:

http://httpd.apache.org/docs/2.2/vhosts/name-based.html