多站点安装的优缺点

Given that a multisite installation of discourse uses about the same resources as an ordinary install with the same traffic , I wonder what exactly the downsides are, apart from a more complicated setup procedure.

An obvious one is that if one of your sites is down, all of your sites are down (right?). But what about support, for example? If I search meta for a solution to an issue and find something, will it automatically apply to my multisite install, even though the original topic doesn’t explicitly deal with multisite?

6 个赞

An obvious one is that if one of your sites is down, all of your sites are down (right?)

Yes

1 个赞

Typically yes – however, for some steps, you’ll need to make sure you work on the correct instance. The key is to set an environment variable like RAILS_DB=myfancypantsinstance1 e.g. when entering the rails console.

This is why I recommend making the first instance on a multisite host a test instance: If you ever forget to specify the instance, you’ll target your test instance, which is probably safer than working with a production instance by accident :wink:

14 个赞

That is not entirely true: for each Unicorn process there can a separate database connection for each site in the multisite. So 5 Unicorns, 1 Sidekiq and 5 sites = 30 Postgres server processes.

Some other disadvantages / things you need to be aware of with multisite:

  • Sidekiq is shared and /sidekiq is only available on the master site
  • All plugins are shared, there can not be separate plugin choices
  • discourse.conf is shared so there can only be one mail server
  • Some plugins are incompatible with multisite
8 个赞

I don’t understand a word what you are saying, but that is entirely my fault. I understand, though, that you are counting software processes and I have no idea how these translate into hardware recourse requirements. Could you elaborate?

I understand that this can be a disadvantage from the perspective of a (commercial) hoster because your clients wont have access to /sidekiq on their respective sites and if you give them access to the mastersite they will possibly see more than they want or should see, right? But if all sites are mine, it probably doesn’t matter, right?

Very important point, thanks for bringing that up! However, provided that all installed plugins have a switch to turn them off, it doesn’t really matter, does it?

Wait, the only one of my instance where I did something with a discourse.conf file is the one where I have discourse behind a reverse proxy and there is nothing about email in that file.

How do I know which ones? Trial and error? Or, since this also about future compatibility, what type of plugins are likely to be incompatible?

3 个赞

Very easily put: there is a (albeit small) memory penalty that is proportional to the amount of multisite forums.

Correct.

Most plugins just turn off their functionality but they are still loaded into memory. So there is a (small) memory and performance penalty there.

This is not about the nginx discourse.conf but about the Discourse one. I think it’s generated out of app.yml.

Trial and error…

4 个赞

是否可以有一个支持多种语言(而不仅仅是 en-US)的多站点?

或者每个 Discourse 多站点都只能支持主配置中的语言?

看起来 n8n 社区 遵循了该方法,但缺点可能与 SSO 相关,如果您打算在博客或其他域/应用程序中使用它。

是的,这是可能的。

您能详细说明一下吗?

5年前是这样。关于如何检查哪些插件适用于多站点,哪些不适用,是否有任何变化?

如果有人好奇,以下是我在我所有站点上使用的插件:

      - git clone https://github.com/focallocal/dcs-discourse-plugin.git
      - git clone https://github.com/discourse/discourse-assign.git
      - git clone https://github.com/hnb-ku/discourse-custom-hamburger-links
      - git clone https://github.com/paviliondev/discourse-custom-wizard.git
      - git clone https://github.com/paviliondev/discourse-events.git
      - git clone https://github.com/discourse/discourse-kanban-theme.git
      - git clone https://github.com/discourse/discourse-data-explorer
      - git clone https://github.com/discourse/discourse-solved
      - git clone https://github.com/discourse/discourse-akismet
      - git clone https://github.com/discourse/discourse-post-voting
      - git clone https://github.com/discourse/discourse-docs
      - git clone https://github.com/discourse/discourse-docs-card-filter
      - git clone https://github.com/discourse/discourse-category-experts
      - git clone https://github.com/discourse/discourse-cakeday
      - git clone https://github.com/discourse/discourse-code-review

您似乎意外地添加了几个主题组件?

3 个赞

哦,是的,真粗心。不过这样运行得很好:sweat_smile:

我经常在该睡觉很久之后才进行网站维护,等其他事情都做完了。

谢谢你指出来。

1 个赞

什么决定了“第一个”实例?如何将标准安装转换为具有虚拟第一个实例的多站点安装?

最简单的选择是忽略我的建议,并接受您现有的安装是第一个的事实 :slight_smile:

如果您确实想转换,可以随时创建备份,设置新的多站点安装,包括第一个虚拟实例和现有域的第一个“真实”多站点实例,然后恢复备份。

1 个赞