如何在同一个域上运行\处理多个Ruby on Rails应用程序?

时间:2012-01-04 22:55:02

标签: ruby-on-rails ruby-on-rails-3 apache subdomain virtualhost

我正在使用Ruby on Rails 3.1,我在www.mywebsitename.com域运行了一个应用程序。出于改进原因,我想在www.uk.mywebsitename.com子域运行我的应用程序(BTW:在www.mywebsitename.com域我将运行RoR应用程序以将用户重定向到正确的子域。)

我不需要地理编码或类似功能。简单地说,我想知道如何在www.uk.mywebsitename.com网址上运行我的应用程序(我计划将其他/类似的RoR应用程序添加为子域www.de.mywebsitename.comwww.it.mywebsitename.com每个人都使用一个单独的数据库):我需要关心/做什么?你有什么建议?

P.S。:我的服务器正在运行Linux Ubuntu和Apache。我使用Capistrano宝石进行部署。

1 个答案:

答案 0 :(得分:4)

看起来你正在寻找如何制作apache虚拟主机,因为这基本上就是他们所做的。

我假设您正在使用phusion乘客,在这种情况下,您应该已经拥有一个vhost(或者至少是/etc/apache/sites-available中的默认网站(或者类似的,可能是apache2,我“我不完全确定。”

要使多个rails应用程序正常工作,您基本上需要做的是为每个rails应用程序设置一个vhost,并为每个vhost设置正确的ServerNameDocumentRoot

对于你来说,它可能看起来像这样:

<VirtualHost *:80>
  ServerName www.uk.mywebsitename.com
  DocumentRoot /path/to/where/your/uk/site/is/deployed/current/public
  <Directory /path/to/where/your/uk/site/is/deployed/current/public>
    Allow from all
    Options -MultiViews
  </Directory>
</VirtualHost>

如何为乘客设置vhosts记录在in the passenger documentation