我有一台具有以下配置的专用服务器
i3 - Dual Core - 3.06Ghz H/T
16GB RAM
500GB SATA2
现在我想在一台专用服务器上执行两个不同的 Rails 应用程序。两个应用程序都不同,但它们使用的是通用数据库。
有可能这样做吗?如果是——我该怎么做?使用 Apache 的 Phusion Passenger 是一个好方法吗?如果是 - 如何使用一台 Phusion Passenger 服务器配置两个应用程序?
我有一台具有以下配置的专用服务器
i3 - Dual Core - 3.06Ghz H/T
16GB RAM
500GB SATA2
现在我想在一台专用服务器上执行两个不同的 Rails 应用程序。两个应用程序都不同,但它们使用的是通用数据库。
有可能这样做吗?如果是——我该怎么做?使用 Apache 的 Phusion Passenger 是一个好方法吗?如果是 - 如何使用一台 Phusion Passenger 服务器配置两个应用程序?
我将描述如何使用 Apache、Phusion Passenger 和某个版本的 Ruby 在一台 Linux 服务器上运行多个 Rails 应用程序。您有很多选择,但这应该可以帮助您入门。其中许多细节来自安装脚本
首先,安装 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 配置文件中。
<VirtualHost *:80>
ServerName app1.example.com
DocumentRoot /somewhere/app1/public # <-- be sure to point to 'public'!
<Directory /somewhere/app1/public>
AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off
</Directory>
</VirtualHost>
如果您有两个 Rails 应用程序共享一个数据库,那么它们都将在 config/database.yml 中具有相似的连接信息
是的,这绝对是可能的。我从来没有用Passenger + Apache做过,但我相信那是个好方法。我只用瘦+ nginx做过。
使用 Apache 的乘客 Phusion 是一种可靠的方法。他们使用相同的数据库这一事实不应该是一个问题(只要确保他们不会以任何方式相互踩踏)。
通常,只需正常设置即可,但请查看基于 Apache 名称的虚拟主机: