我已按照在 CentOS 7 上安装 Discourse 的说明操作。
我已正确配置电子邮件并成功收到测试邮件。但始终出现 502 Bad Gateway 错误。
此前我曾遇到过 ssl_stapling 的问题,已通过包含完整的证书链文件解决。
我看到 Docker 应用正在监听自定义端口 25654:
0.0.0.0:25654->80/tcp, :::25654->80/tcp
我收到了以下 Nginx 错误,我认为这是由于 Discourse 应用未监听导致的:
connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxxx, request: “GET / HTTP/2.0”, upstream: “http://x.x.x.x:25654/”, host: “xxxx”
我的 DNS 记录已将 [MY_DOMAIN].net 和 discourse.[MY_DOMAIN].net 都指向正确的 IP 地址。
1 个赞
griffin
(Jonathan Griffin)
2
欢迎加入 Meta Discourse 社区 
我常在 Let’s Encrypt 社区 协助解决 SSL 安装问题。我注意到您的第二个服务器块中缺少 IPv6 的 listen 指令:
listen [::]:443 ssl http2;
如果没有这一行,我不确定您的 IPv6 流量会被导向何处。

1 个赞
非常感谢,Jonathan。这解决了连接被拒绝的问题。
现在当我尝试访问我的 Discourse URL 时,我被重定向到了“欢迎使用 CentOS”,并收到了以下错误日志。

Discourse doctor 仍然显示版本未找到。
1 个赞
我看到使用 netstat 时,端口 25654 上有两个 docker-proxy 进程,一个用于 tcp,另一个用于 tcp6。我想知道这是否是个问题,因为我在其他教程的截图中没有看到这种情况。
由于 CentOS 似乎需要不同的配置,我遵循了本教程中的 Nginx 设置:
此外,我还根据本教程中提到的内容,对 app.yml 和 Nginx 配置文件进行了一些额外修改,以便让我的 MYDOMAIN.net 和 discourse.MYDOMAIN.net 通过 Nginx 在同一台机器上运行:
例如,我已启用了 WebSocket 模板。
但现在我在该教程的一条评论中看到,如果使用 Socket,则必须注释掉所有暴露的端口。不过,根据第一个配置,它添加了一条“25654:80”的条目,以便监听由 Nginx 转发到 25654 的流量。
如果这是一个基本的配置问题,我深表歉意,因为端口转发、Socket 以及整体网络设置并非我的强项。
1 个赞
Falco
(Falco)
6
这些属于高级配置。对于不熟悉反向代理设置和 Docker 管理的用户,我们建议遵循我们唯一官方的 Discourse 标准安装指南。请注意,该指南假设您使用的是全新服务器,且服务器上仅部署 Discourse 这一款 Web 应用。
3 个赞