在常规域上安装Discourse

有人能给我解释一下为什么人们常说 Discourse 可以安装在普通域名上,而无需安装在子域名上,但只有某些 DNS 支持这一点吗?我真的不明白为什么只有某些 DNS 支持这一点,我弄不明白问题出在哪里。我只是想从技术上理解它的要点。提前感谢!

我认为您指的是 配置您的 Discourse 托管站点以在根目录或顶级域(例如 example.com)运行 — 这仅适用于 Discourse 托管的实例。我不认为这适用于个人、单实例托管。

问题在于,此托管设置[1] 通常期望配置的名称是 CNAME 记录,这是一种别名。C 代表“规范”。[2] 例如,_此_站点 meta.discourse.org 的记录是 CNAME(在我写这篇文章时),指向 app-cname-target.cdck-prod-meta.discourse.cloud

由于 DNS 委派的结构方式 — 顶级域(如 .org.com)将对二级域的请求发送到注册商配置的服务器[3] — 您只能为您获得的域 的主机名配置 CNAME。

为了绕过此限制,一些 DNS 提供商提供了他们称之为 ANAME 记录或“CNAME 展平”的功能。这可以与 任何 记录一起正常工作,包括您委派的“裸”或“顶级”域的记录。这不是 DNS 的 真正 标准部分,而是 DNS 公司提供的专有后台技巧 — 而且,并非所有提供商都这样做。

不过,您还可以做其他事情:

  • 设置您的“顶级”域进行重定向,以便例如 example.net 重定向到 forum.example.net。在这里,人们仍然会看到并使用较长的名称,但他们可以 短名称 到达 那里。

  • 可能 还有另一个选项:

  • 在您的“顶级”域上设置一个透明的反向代理。这很复杂,我不确定它是否能轻松与 CDCK 的设置配合使用,但我在此提及以求完整。


  1. 顺便说一句,它恰好由 CDCK 设计和实现,而不是托管的固有限制 ↩︎

  2. 在计算中,意为“首选官方名称”——您可能有一个 www.example.org 作为 serverhost003.example.org 的 CNAME,但如果 3 号服务器出现故障,您只需更改 CNAME 即可继续。奇怪的是,Merriam-Webster 并没有真正收录这个意思。 ↩︎

  3. 事实上,这可以继续进行 — example.org 可以委派 stuff.example.org,而 stuff.example.org 可以委派 things.stuff.example.org 一直向下 ↩︎

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.