-
我想托管数百个 Discourse 实例。是否可以在单个主机/Droplet 上安装多个 Discourse?URL 格式如下:example.com/City1、example.com/City2、example.com/City3 等(即每个城市一个独立的 Discourse 实例)。
-
因为子域名成本较高,而我需要超过 100 个子域名。
-
如何将论坛设置复制到另一个论坛?因为我希望将所有 Discourse 实例都应用相同的设置。
-
是否有一种方法可以一次性在多个实例上安装插件?
我想启动一个社交平台,但需要为每个城市部署独立的实例。
pfaffman
(Jay Pfaffman)
2
您需要多站点安装。所有站点将使用相同的插件。
子域名无需额外费用。您只需要一条通配符 DNS 记录即可。使用子域名会方便得多。我不确定子文件夹代码在多站点环境中是否经过测试。
虽然许多设置可以通过环境变量进行配置(尽管这些设置对所有站点都相同,这对于像 S3 这样的场景是可以接受的,但对于像 POP 邮箱这样的场景则不然),但为所有站点应用设置的最佳方式可能是使用插件。您还可以从 Web 界面中隐藏某些设置。
如果您有预算,我可以协助处理所有这些事项。
我有 GoDaddy 域名,但他们最多只提供 100 条记录,而我需要大约 500 条。
因为有 500 个区县/城市。
哪个插件?
抱歉,我在这方面没有太多预算,因为这是一项社会公益项目。目前我计划先在 1 个城市进行测试,然后通过捐赠筹集资金。
Remah
(Just another happy Discourse user)
4
我之前就说过,这听起来像是一种成本高昂的做法。
如果设置相同,那为什么要有 500 个独立的邮件源、500 个独立的审核队列、500 个独立的 Discourse 备份等等。
因为每个地区的问题与解决方案完全不同(类别不同,语言也不同)。此外还有其他原因……
我曾考虑过:“我能否通过单个实例管理所有内容?” 但随后我发现,将所有地区放在同一个 Discourse 中并不是一个好主意。
为了更实际地理解:
如果我们将所有 500 个地区放在同一个 Discourse 中。
假设每个地区每天至少创建一个主题,那意味着每天会有 500 个主题,这是一个非常庞大的数量,用户无法有效讨论,因为主题数量太多。将会出现主题风暴。
pfaffman
(Jay Pfaffman)
6
在你需要扩展到多个多站点实例之前,只需一条通配符 A 记录即可。其他 DNS 提供商没有这个限制。
你需要自己编写。
那么你目前真的不需要解决 500 个城市的问题。我建议开始时每个 Droplet 只使用一个站点。在拥有超过 5 个城市之前,多站点的优势微乎其微。
没错,我打算按这个方向走。但我也知道迟早要面对这个问题,所以我正在寻找解决方案。我并不完全依赖捐赠。如果长时间没有收到捐赠,我可以用自己的资金来维持运营,只是需要等待一段时间。
目前,我在 DigitalOcean 的 2GB RAM Droplet 上托管了一个测试站点。我发现该实例的资源占用并没有那么高,这意味着它足以支持一个城市。不过我在想,如果我们在单个 Droplet 上托管多个 Discourse 实例(配备更多内存),当某个区流量较少时,其他区就可以利用这些资源,这样或许能帮我节省一些费用。当然,如果我的想法有误,请指正。
pfaffman
(Jay Pfaffman)
8
我不推荐在内存小于 4GB 的情况下使用多站点模式,但你可以参考 https://meta.discourse.org/t/multisite-configuration-with-docker/14084。
根据我对你的技能和需求的了解,我建议每个城市先使用 1GB 的 Droplet,直到你至少有 5 个站点。在此期间,你可以临时创建 Droplet 来测试多站点配置,测试完成后即可删除。
我建议你先等到真正遇到问题时,再着手解决它。