单个网站的多个主机名用于切换阶段

我知道无法/不支持设置多个主机名(只能多站点),至少这里的问题是这么说的:How can I use multiple hostnames - support - Discourse Meta

但是,情况还是这样吗?重定向对我来说没有帮助(而且我真的不想为简单的、临时的用例进行复杂的反向代理重写):在我的情况下,我想在现有服务器旁边并行安装一个新的 Discourse 服务器,并使用一个新名称来查看该服务器的暂存版本。但是,该服务器也应该接受官方名称(用于 DNS 切换时或管理员使用 /etc/hosts 别名时)。这将在暂存阶段大大改善体验。

我认为目前的主要问题是绝对 CSP URL,这阻止了此功能工作(尽管它们已经检查协议,但应该可以扩展以检查允许主机列表中的主机名)。那么,现在是否可用了?

顺便说一下,在我的情况下,我使用 http 进行测试,但我认为这里已经涵盖了 Let’s Encrypt 设置来请求多个证书,所以稍后我将能够做到这一点。(在它在正确的官方别名下可用之前无法工作)

顺便说一句,我刚注意到用不同的 DISCOURSE_HOSTNAME 重新构建应用程序容器不起作用——我怀疑它也在数据库的某个地方(但无法在管理员设置中更改)。

这使得在这种情况下列出接受的主机列表变得更加重要。

有一个关于更改主机名的主题。更改域名或重命名您的 Discourse

如果您希望多个名称解析,并且 Discourse 重定向到正确的名称,那么对于 http 您已经设置好了。对于 https 您需要为所有域名获取证书。我认为使用多个域名设置 Let’s Encrypt 应该会有帮助。

如果您希望站点不重定向到自身,您可以调整 nginx 以避免该重定向。但我不知道如何告诉您具体操作方法。

更改主机名主题对我来说并不可靠(例如,尽管进行了重新映射+重新烘焙,但欢迎帖子的 twitter 表情符号仍然指向错误的服务器)——我还没有研究原因(我会告诉你)。至少它并不轻松。

对于我的用例,重定向不起作用,因为它会重定向到旧服务器

nginx 配置不需要更改,它不知道主机名。但问题更多在于应用程序,例如 CSP 标头包含完整 URL(不知道为什么)。