我有一台专用服务器,配置如下
i3 - Dual Core - 3.06Ghz H/T
16GB RAM
500GB SATA2
现在,我想在一台专用服务器上执行两个不同的Rails应用程序。这两个应用程序是不同的,但它们使用的是共同的数据库。
这样做有可能吗?如果是,我该怎么做呢?使用Apache的Phusion Passenger是一个好方法吗?如果是-我如何使用一个Phusion Phusion Passenger服务器配置两个应用程序?
发布于 2011-09-21 04:40:39
我将描述如何使用Apache、Phusion Passenger和某个版本的Ruby在一台Linux服务器上运行多个Rails应用程序。您有很多选择,但这应该可以帮助您开始。其中许多详细信息都来自安装脚本
首先,安装Phusion Passenger。
> gem install passenger
其次,构建Apache2乘客模块。您应该能够执行在第一步中安装的以下脚本。
> passenger-install-apache2-module
此脚本将编译Apache2模块并解释如何配置Apache。如果缺少依赖项,脚本应该提供一些关于如何安装它们的有用建议。
第三,编辑Apache配置文件。我必须添加一些类似这样的东西。(仅供参考,不用担心.rvm)在步骤2中运行的脚本将为您提供一些可以复制和粘贴的内容。
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中都有相似的连接信息
发布于 2011-09-21 02:54:06
是的,这绝对是可能的。我从来没有在Passenger + Apache上这样做过,但我相信这是一个很好的方式。我只用thin + nginx做过。
发布于 2011-09-21 03:10:21
使用Apache进行Phusion是一种可靠的方法。它们使用相同的数据库这一事实应该不是问题(只要确保它们不会以任何方式互相践踏)。
通常,只需正常设置即可,但请看一下基于Apache名称的虚拟主机:
https://stackoverflow.com/questions/7490189
复制相似问题