大家好,
我的 Discourse 一直运行正常,直到前几天。更新后,我遇到了当前的错误:502 Bad Gateway。
我使用的是 NGINX,并且我没有更改 Discourse 本身或服务的主要 NGINX 服务器代理的任何设置。
我还在使用 Cloudflare DNS 等。
我做了以下操作:
- 通过网站管理面板(用于提交的那个)更新了 Discourse。
- 在服务器上安装了 certbot,后来才意识到服务器上已经安装了。
- 运行了“sudo snap install core; sudo snap refresh core”。
- 将 npm 和 nodejs 更新到最新版本。
- 在意识到步骤 1 到 4 导致 Discourse 宕机后,重建了 Discourse 应用程序。
我仔细检查了我的 nginx 反向代理,以确保我没有动任何东西,事实确实没有动。
我对哪里可能出了问题感到有点困惑。
提前感谢,
~Blood
1 个赞
pfaffman
(Jay Pfaffman)
2
升级/重启后,您会遇到一到两分钟的 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
不过,如果日志在该目录中,我不太确定我应该阅读哪一个。
pfaffman
(Jay Pfaffman)
4
哦。是的。抱歉。如果你从你提供的正确路径向下查找,可以看到有 rails 日志和 nginx 日志。你可以检查 rails 日志以查看内容是否从你的反向代理到达容器,也可以检查 rails 日志以查看 rails 中是否存在错误。
根据我从日志中读取到的信息,看起来 redis 最初没有连接上,但后来自行修复了,尽管我不确定这之前是否存在,所以我真的不认为这是导致我问题的 redis 问题。
我以为可能是 SSL 握手问题,但我没有在 NGINX 的 error.log 中看到任何最近的提及。
pfaffman
(Jay Pfaffman)
6
如果你有一个外部反向代理,那么它应该处理 SSL 相关事宜,而不是 Discourse。如果你的 yml 文件中有 SSL 和 letsencrypt 模板,那可能是问题所在,不过你说它之前是工作的。
我刚刚仔细检查了一下,确保它们被注释掉了,确实是注释掉了,所以我完全不明白为什么在更新等之后会发生这种情况。
而且它之前是工作的,可能是在几天前,在对更新等进行了一些调整之前。尽管从我所了解的情况来看,这不是我唯一遇到问题的服务,这让我相信是 NGINX 那方面的问题。
1 个赞