Discourse + Web 服务器:可行还是最好避免?

@OrbitStorm

实际上,就目前的看法而言(IMHO),Discourse 是地球上最优秀的论坛和社区建设开源软件,原因有很多,这里仅列举几点:

  1. Discourse 是开源的,拥有强大的社区以及非常聪明(且能力出众)的核心开发团队。

  2. Discourse 专为在生产环境中以 Docker 容器运行而设计,这带来了诸多优势:

  • Discourse 可以轻松以standalone mode(独立模式)部署,无需任何外部 Web 服务器或数据库。

  • Discourse 可以轻松以multi-container mode(多容器模式)部署,提供更高的可靠性和无缝升级。

  • Discourse 还可以使用 Docker Swarm 和 Kubernetes 部署为高可用配置,从而能够根据需求“按需”弹性伸缩。

  • Discourse 的备份和恢复非常简单。我们可以直接使用 Discourse 原生的备份功能,并在全球任何地方的全新、纯净的 Docker 容器中恢复。

  1. Discourse 可以轻松部署在 Apache2 和 nginx 反向 Web 代理服务器之后。这也带来许多优势,例如:
  • Discourse 可以轻松运行在现有的 Web 服务器上(无论是 nginx 还是 Apache2),只需在 Docker 暴露的 TCP/IP 端口或 UNIX 域套接字上稍作配置即可。

  • 在反向代理之后运行基于 Web 的应用程序已是成熟的做法。这种配置并非 Discourse 独有,但 Discourse 会提供支持。

  • 在反向代理之后设置 SSL 非常简单,使用受支持且免费的 LETSENCRYPT,甚至只需一条命令如 certbot -d my.great-discourse.site 即可完成。

  1. Discourse 在 GitHub 上提供了按每次提交(commit-by-commit)的完整文档,任何人都可以跟踪代码变更。

  2. Discourse 采用渐进式商业模式,带来一些关键优势,包括:

  • Discourse 核心软件以及许多优秀的插件、主题和组件都是免费的。

  • Discourse 提供包括标准配置支持在内的免费支持,可在 meta 论坛获取。

  • Discourse 为那些不想自行托管或更倾向于“放手不管”的用户提供商业托管服务。

  • Discourse 鼓励社区内的商业咨询和插件开发,从而构建一个可行的商业生态系统。

  1. 还有很多,但我想就此打住!

我们(或我)是否同意核心 Discourse 团队所做的每一项决定?他们是否也同意我们(或我)的所有想法和建议?

当然不是;他们也不应该这样,我们也不应该这样。我们自由地提出建议、提交代码建议、PR(拉取请求),而核心 Discourse 团队将以开放的心态对待这些建议。

但归根结底,核心团队必须确保 Discourse 社区朝着一致的方向前进,这在数百名来自不同文化背景、拥有不同配置需求、优先级、商业模式和理念的人参与的情况下,绝非易事。

换句话说,从 Discourse 中没有任何东西需要“避免”(你的主题标题中的用词),尤其是设置反向代理和掌握 Docker。许多人(包括我)正是因为 Discourse 而开始转向 Kubernetes,不仅是为了 Discourse,也是为了其他 Web 应用。

Discourse 与“阻碍性”(再次强调,这是你的用词,而非我的)截然相反;而且由于其基于容器的设计,“天空才是极限”,经验丰富的系统管理员可以在高度可扩展的生产环境中灵活部署 Discourse;同时它也足够简单,初学者可以轻松以独立模式进行部署。

我还需要多说吗?

正如 REM 乐队的那首歌《Losing My Religion》所唱:

Oh no, I’ve said too much, I set it up

就此结束这个话题……祝你好运,@OrbitStorm