关于自托管的困惑逐渐消除

(我的水平:在 Wix 上搭建过几个半复杂的网站,编程初学者)

我之前的一个重大困惑现在稍微清晰了一些,那就是:自行托管 Discourse 与“网络托管”截然不同。

1) 自行托管 Discorce 需要服务器,这意味着完全是另一回事,对吧?(因此其价格与通常广告中宣传的网络托管价格差异巨大,对吧)

2) 那么,“VPS 托管”是否是相对于自行托管 Discourse 的等效术语?还是说还有其他选项?其他类型的自行托管?(我知道可以在自己的硬件上托管)

3.1) 那么“托管服务”;这是否是在 VPS 类型托管之上的服务?

3.2) 这是否昂贵得多?

3.3) 具体做什么呢?

3.4) 作为一个刚起步、预算有限的新手,运营一个小型论坛(每月约 100 名用户),可以不做托管服务,对吧?

在网上阅读了数小时关于托管 Discourse 的内容后,以下引用所在的帖子是最有帮助且最全面的概述之一,帮助我选择了托管路径。

关于这个引用点,能否有人请澄清以下几点:

4.1) 我理解这是关于维护服务器?现在通过 DO/Hetzner 时是否已经包含在内?还是说只有在另一种单独的服务中才包含?那叫什么?

比如,如果我使用 DO 的一键 Droplet 功能,这是否包含那种维护?还是说那仅与设置有关?

4.2) 对于像我这样的论坛,“维护它”需要多少时间/时间和知识水平?

4.3) @tophee 说“出于各种原因,Discourse 论坛的管理员很少使用托管服务器”。这是为什么?

我还发现这个决策树也很有帮助,可能有些内容已经过时了,所以如果其中一些现在更容易了,请告诉我。


5.1) 我不太明白 SSH 是什么,根据这张图,所有自行托管者都需要这个吗?

5.2) 他们所说的“能够管理 DO、MailGun 和 DNS”是什么意思?对于像我这样的论坛,管理这些需要多少时间/时间和知识水平?

我会尽力回答你的问题,不过我认为你可能混淆了一些重叠的术语,这导致了一些困惑。

当本论坛的用户提到“自行托管”(self-hosting)Discourse 时,他们指的是在你自己的服务器上运行 Discourse 实例。(稍后会详细说明)当他们提到“托管服务”(managed hosting)时,他们指的是由服务商提供硬件并运行 Discourse 实例的服务。所谓“托管服务”,意味着 Discourse 实例由服务商管理,他们负责保持 Discourse 实例及其运行所在的操作系统处于最新状态并正常运行。

要“自行托管” Discourse,你需要一台能访问互联网且配置了正确指向你服务器的 DNS 服务的服务器。这台服务器可以是你本地场所运行的实体硬件,也可以是一台“VPS”(虚拟专用服务器)。VPS 是服务商提供给你、你可以完全控制(就像本地硬件一样)但通过“远程”方式访问的服务器硬件。所谓“远程访问”,是指你使用 SSH 和 FTP 等工具来访问服务器、控制它以及向它传输文件。

SSH 即“安全外壳”(Secure Shell)。安全外壳本质上是一个通过安全(加密)隧道运行的命令行提示符。你熟悉通过命令行提示符运行服务器吗?

Shell、终端、命令行和命令提示符大体上指的是同一个东西。即通过终端窗口输入命令来运行计算机。如果我刚才说的内容听起来像另一种语言,那么在尝试之前可能需要先学习一些基础知识。

当你租用 VPS 时,你会获得登录凭据和新服务器的 IP 地址。通常在购买时,你可以选择操作系统。你可以使用 PuTTY 这样的终端程序或电脑自带的终端窗口登录到服务器。你可以使用 Filezilla 等 FTP(文件传输协议)程序将文件从电脑传输到 VPS。

因此,一旦你租用了 VPS 并通过 SSH 登录,你就可以在服务器上安装 Discourse 实例,从而实现“自行托管” Discourse。你将完全控制你的 Discourse 实例及其运行的服务器。通常你可以使用 Discourse 内置的管理工具来保持 Discourse 更新,但偶尔也需要通过命令行手动更新。你还需要备份数据并知道如何恢复。Discourse 会自动进行备份,但你必须下载并安全存储这些备份,以备不时之需。

使用 VPS 时,你还需要维护 Discourse 实例运行的操作系统。这需要具备一定的操作系统知识,知道如何保持其更新和正常运行。如果你搞砸了 VPS,通常 VPS 服务商能做的只是清除你的操作系统并重新加载一个全新的版本。你还需要备份重要数据,以便在需要重新加载操作系统时恢复。

一旦设置好并运行起来,如果你懂行,维护起来其实相当简单。从你对自己技能的描述来看,我认为你能胜任。学习这一切的最佳方法就是动手尝试。如今租用 VPS 的费用相当低廉。搭建一台服务器,尝试在上面运行 Discourse,如果有问题,可以来这里或 ask.discourse.org 提问。

只要记住,如果你运营的论坛流量不大(单靠自身确实不会有很多流量),搞砸了大不了重头再来。如果有很多人加入你的论坛并开始发帖,你就需要做好维护和备份工作。如果你已有现成的论坛,或者有想要推广或提供支持的产品,或许可以考虑使用托管服务商。如果你只是随便玩玩、学习一下……那就放手去做吧。

Discourse 托管 ≠ 自行托管

我是一位经验丰富的自行托管者,曾进行过一些复杂的配置;此外,我曾在 Discourse 工作过,因此对这两个概念有一定的了解,而您似乎对它们有些混淆。我会尝试为您澄清一些事情,但这绝非详尽的解释,尽管篇幅可能有点长,哈哈。我不知道您从哪弄来的那张流程图,但它并不完全正确。

Discourse 托管顾名思义——Discourse 会收取费用来托管您的站点。正如您已经发现的,有不同的价格层级,从免费开始,随着层级提升提供越来越多的选项,而企业级是最高且最昂贵的(它为您提供最多的选项以及顶级的支持服务)。托管式托管(Managed Hosting)也是如此(Discourse 托管是托管式托管的一种形式),但其他合作伙伴公司如 Communiteq 或 Literate Computing 也提供此类服务。这些合作伙伴公司除了托管之外,还收取费用提供各种开发和支持服务(我也提供)。请记住,开发和专业支持通常不是免费的,这就是 Marketplace(市场)版块存在的意义。此外,虽然 Discourse 的托管价格结构对您来说可能显得昂贵,但我可以向您保证,许多知名公司为其规模庞大、繁忙且运营良好的企业级论坛(其中许多是私有的)支付高昂的费用。Discourse 为它们提供的 SLA(服务等级协议)和支持/开发服务级别之所以如此之高,是因为它们的业务活动需要这些保障。如果您是一家科技公司,遭受 DDoS 攻击可能导致公司因停机损失六位数资金,那么支付企业级托管费用是非常值得的。

自行托管的意思正如字面所示——您在租用的服务器(或您拥有的物理服务器,我不推荐后者,因为那会引入另一个高级别的麻烦)上托管自己的站点。自行托管不仅仅是租用一台服务器(或 VPS——虚拟专用服务器)并通过 SSH 登录就万事大吉了。作为自行托管的管理员,您需要具备某些知识。一个仅在 Wix 上搭建过几个网站的编程初学者,在自行托管 Discourse 方面能帮您的忙并不多;这是完全不同的事情,所需的技能水平也不同。您目前还不知道什么是 SSH,这可能表明您在该领域还有很长的路要走。Secure Shell - Wikipedia

如果您有兴趣学习,我建议您从阅读标准安装文档开始,并从中了解基本情况。有些人觉得容易,有些人觉得难,您拥有的一些网站管理经验可能会帮助您学得更快。能够 SSH 登录服务器是一回事,但您必须习惯于命令行界面,并了解 Docker 管理的基础知识以及容器的工作原理。既然您说您的站点规模较小,那么标准安装应该可以作为起步,并且它将为您提供所有内置插件的访问权限,以及您可能想要添加的其他插件;本质上,自行托管的 Discourse 实例就像拥有一个企业级的 Discourse 托管论坛,但没有他们的专家支持、正常运行时间 SLA 和性能(例如,每次重新构建或更新时您都会遇到一些停机时间,但 Discourse 托管会为您处理这些操作,且不会出现明显的停机)。

您完全有理由学习如何自行托管,但请记住,没有什么东西是免费的,您想要的服务规模和级别将决定您需要支付的成本。一些 VPS 服务比其他服务更便宜,这里有一份 @pfaffman 整理的列表,可以帮助您做出决定。例如,我有 3 个 Discourse 站点,都在 Hetzner 上,但服务器大小和相关成本不同:2 个站点是位于 Cloudflare CDN 之后的双容器安装,并使用 R2(S3 兼容)对象存储 进行上传和备份,另一个是用于测试目的的标准安装。我以前使用过 DigitalOcean,但它可能相对昂贵;然而,它是学习标准安装的推荐起点(尽管我实际上觉得 Hetzner 并没有太大不同,而且我更喜欢他们的控制面板)。

如果您不想支付 Discourse 或其任何合作伙伴托管公司的费用来管理您的托管,并且您需要超过免费层级的服务,那么我的建议是做一些研究和阅读,然后尝试自行安装。了解 app.yml 文件是什么以及如何编辑它,如何设置您的名称服务器和电子邮件服务——这是学习如何作为自行托管者配置自己的 Discourse 实例的起点。一些 VPS 服务允许您以非常低廉的价格短期租用服务器,仅用于测试或学习。

这张图表挺不错的,我也完全同意上面几位网友的观点(尽管我会强烈建议新手不要使用 LLM 来获取支持,因为它们经常会出现明显的错误)。不过,“自建托管”(self-hosting)是一个涵盖面很广的术语,在这里需要稍作澄清。

如果你:

  • 能够熟练地在自己的硬件上运行 Linux(或者不介意去翻阅那些 15 年前的 Reddit 帖子)
  • 没有预算花在大型科技公司身上
  • 拥有稳定、可靠的 24/7 互联网连接和电力供应
  • 不受 ISP 限制(例如端口 80/443 被封禁或动态 IPv4)
  • 具备基础的网络知识(如端口转发)
  • 有一台备用电脑(实际上可以是一台只有 4GB DDR3 内存的旧办公机,只要配备 SSD 即可)

……那么我绝对推荐你在自己的硬件上进行托管。在这里,自建托管经常背负着莫名的坏名声(可能是因为稳定性参差不齐?),但只要你具备相应的能力,我绝对建议你试一试!自建托管一直是我做事的方式,在我年轻时负担不起云服务时,它帮了我大忙。即使到现在,我依然选择在本机服务器上自建托管,因为它成本低、可预测性强,而且你可以随心所欲地操作。

自建托管需要学习的东西很多,即使你成功地在自己的硬件或 VPS 上安装好了,后续还有更多工作等着你。你当然可以跳过所有这些步骤,直接选择托管方案,但如果你想省钱,自建托管(尤其是在自己的硬件上)是非常棒的选择。