新的Litespeed反向代理安装在加载屏幕上停滞

我正在将现有的 Discourse 安装迁移到一台新服务器上,迁移的第一步是在新服务器上进行一次全新的 Discourse 安装。新服务器的 80 和 443 端口上已经运行了 Web 服务器,因此我按照此处的描述,将 Discourse 作为 Unix 套接字运行,并置于反向代理之后。

我唯一不同之处在于,我没有使用 nginx,而是使用了 OpenLiteSpeed 作为反向代理。不过,OpenLiteSpeed 的配置非常简单,并且我已经成功地将其与其他 Docker 应用程序配合使用:您只需配置一个使用套接字地址的外部应用程序,然后使用代理上下文将所有请求重写到套接字。

结果是,当您访问代理 URL(在本例中为 forum.prostasia.org)时,Discourse 确实会加载,但它只显示带有动画点的加载屏幕,并卡在那里。

关于如何解决此问题的任何建议?谢谢!

您可以打开 JavaScript 控制台,查看正在加载的内容。检查控制台和网络选项卡。

您是否删除了 Let’s Encrypt 模板?

1 个赞

谢谢,这很有帮助。我看到了很多这样的错误:

Refused to load the script x because it violates the following Content Security Policy directive:

当将另一个 Docker 容器放在同一个反向代理前面时,我通过将环境变量 TRUSTED_PROXIES 设置为 ** 来解决了这个问题。

值得尝试同样的方法,但在 Discourse 中该如何操作?

您似乎真的搞砸了内容安全策略设置。

它还尝试从 http://www.example.com/ 检索徽标,这可能会暴露问题所在。这显然是您的表单认为其主机名是…

image

1 个赞

谢谢。老实说,我不知道 example.com 是从哪里来的。由于安装脚本 discourse-setup 在此用例中不起作用,我所做的只是编辑 containers/app.yml 然后执行 launcher rebuild app。我猜这漏掉了在某处覆盖 example.com

但无论如何,我还是设法修复了我的设置。我没有引导一个全新的安装并恢复我的备份,而是从我的原始服务器创建了整个 /var/discourse 目录的 tarball,然后在上面执行了重建,瞧……一切似乎都运行正常。所以,这就是我将来恢复备份的方式。 :slight_smile:

1 个赞

discourse-setup 可以正常工作,您可以:

  • 暂时关闭 80/443 上的任何服务
  • 在另一台服务器上构建,然后复制过来
  • 使用开关绕过连接检查
1 个赞