【问题标题】:Hosting multiple sites via rails - Should I use one rails instance, or many?通过 rails 托管多个站点 - 我应该使用一个 rails 实例还是多个?
【发布时间】:2011-07-09 03:24:32
【问题描述】:

我正在构建一个 Rails 应用程序,它将托管多个射箭联盟网站。让我们称之为 myarchery.com,假设我有 2 个站点:billsleague.myarchery.com 和 jimsleague.myarchery.com。

现在,当我构建它时,我可以:

  • 让一个 Rails 应用程序为子域提供服务(basecamp 风格),共享所有模型等,但在所有内容上添加帐户属性

  • 为每个帐户设置自己的 Rails 应用实例

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

如果这会影响您的回答,我计划使用 apache/passenger 在 Linode 上运行它

【问题讨论】:

    标签: ruby-on-rails design-decisions


    【解决方案1】:

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

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

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

    【讨论】:

    • 我担心的是,通过子域运行 20 多个网站可能比将它们分解成更小的实例效率低。只是提前考虑任何可扩展性问题。
    • 让每个应用程序独立运行可能有助于扩展,因为它很容易识别资源最密集的站点并将它们卸载到自己的服务器上,但要权衡的是这将是一个维护和推送更新要困难得多。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 2016-10-28
      • 2015-03-28
      • 1970-01-01
      相关资源
      最近更新 更多