Discourse 安装 502 Bad Gateway

大家好,

我的 Discourse 一直运行正常,直到前几天。更新后,我遇到了当前的错误:502 Bad Gateway。

我使用的是 NGINX,并且我没有更改 Discourse 本身或服务的主要 NGINX 服务器代理的任何设置。

我还在使用 Cloudflare DNS 等。

我做了以下操作:

  1. 通过网站管理面板(用于提交的那个)更新了 Discourse。
  2. 在服务器上安装了 certbot,后来才意识到服务器上已经安装了。
  3. 运行了“sudo snap install core; sudo snap refresh core”。
  4. 将 npm 和 nodejs 更新到最新版本。
  5. 在意识到步骤 1 到 4 导致 Discourse 宕机后,重建了 Discourse 应用程序。

我仔细检查了我的 nginx 反向代理,以确保我没有动任何东西,事实确实没有动。

我对哪里可能出了问题感到有点困惑。

提前感谢,
~Blood

1 个赞

升级/重启后,您会遇到一到两分钟的 502 错误。

服务器上的 npm 和 nodejs 对 Discourse 没有影响,因为它在容器中获取所有这些。

如果仍然没有恢复,我建议您进行命令行升级

cd /var/discourse
./launcher rebuild app

哦。

您可以查看

docker logs -f app

/var/discourse/shared/logs/.....
1 个赞

我通过以下命令检查了日志:docker logs -f app
其中没有什么让我特别注意的地方。

另外,我似乎没有 /var/discourse/shared/logs/,而是有:

/var/discourse/shared/standalone/log

不过,如果日志在该目录中,我不太确定我应该阅读哪一个。

哦。是的。抱歉。如果你从你提供的正确路径向下查找,可以看到有 rails 日志和 nginx 日志。你可以检查 rails 日志以查看内容是否从你的反向代理到达容器,也可以检查 rails 日志以查看 rails 中是否存在错误。

根据我从日志中读取到的信息,看起来 redis 最初没有连接上,但后来自行修复了,尽管我不确定这之前是否存在,所以我真的不认为这是导致我问题的 redis 问题。

我以为可能是 SSL 握手问题,但我没有在 NGINX 的 error.log 中看到任何最近的提及。

如果你有一个外部反向代理,那么它应该处理 SSL 相关事宜,而不是 Discourse。如果你的 yml 文件中有 SSL 和 letsencrypt 模板,那可能是问题所在,不过你说它之前是工作的。

我刚刚仔细检查了一下,确保它们被注释掉了,确实是注释掉了,所以我完全不明白为什么在更新等之后会发生这种情况。

而且它之前是工作的,可能是在几天前,在对更新等进行了一些调整之前。尽管从我所了解的情况来看,这不是我唯一遇到问题的服务,这让我相信是 NGINX 那方面的问题。

1 个赞