通过rails托管多个站点 - 我应该使用一个rails实例,还是多个?

时间:2011-07-09 03:24:32

标签: ruby-on-rails design-decisions

我正在构建一个可以托管多个射箭联盟网站的rails应用程序。让我们称之为myarchery.com,并说我有2个站点:billsleague.myarchery.com和jimsleague.myarchery.com。

现在当我构建这个时,我可以:

  • 让一个rails应用程序提供子域(basecamp样式),共享所有模型等,但在所有内容上设置帐户属性

  • 使用自己的rails应用实例设置每个帐户

我更喜欢在一个实例中运行它们 - (B / C我可以在注册时立即设置他们的网站,只需一次登录等)。但是,我想看看是否有合理的理由独立运行它们。

我打算使用apache / passenger在Linode上运行它,如果这会影响你的答案

2 个答案:

答案 0 :(得分:1)

使用rails3,您可以免费获得子域路由。 See http://railscasts.com/episodes/221-subdomains-in-rails-3

我不明白为什么你需要一个帐户属性;您的正常关联应该允许您确定子对象的所有权。

每个子域运行多个实例可能看起来更简单,但是您需要付出沉重的维护费用。它只是不能很好地扩展。

答案 1 :(得分:0)

我认为如果它们是同一个站点,运行一个实例就可以了,但如果你需要以不同的方式对它们进行标记,你可以从分割不同的位中获益,并使用svn externals来加载位不同的,例如资产和布局。

无论哪种方式都可以正常工作,在一个实例中将它们全部放在一起可以更容易地维护代码。