无法在 Nginx-proxy-manager 后面安装 Discourse

我尝试在本地(通过虚拟机管理程序主机)部署一台运行 Ubuntu Server 18.04 的虚拟机来运行 Discourse。

问题在于,当我尝试将发往 domain.xyz 的流量转发到地址 x.x.x.x,并使用在 nginx-proxy-manager 上本地安装/创建的证书时,Discourse 安装程序拒绝承认 443 端口已开放。在验证域名真实性时,它每次都失败,提示 443 端口无法访问,而 80 端口可以访问。

就我自己测试而言,Chrome 浏览器返回 502 错误,表明 Web 服务器已关闭。这很奇怪。它可能在运行该测试时正在查找某个文件或执行其他操作。¯\_(ツ)_/¯

我尝试按照官方文档中关于与其他应用程序共存部署的说明,在 app.yml 中手动设置配置选项。我还尝试通过 ./discourse-doctor 手动构建,但同样没有成功。Docker 容器启动了,但通过 Web 浏览器无法显示任何内容(NGINX 错误 502)。

在 NGINX 反向代理配置方面,我没有什么太多选择。它完全基于 GUI,简化了流程。大多数情况下,其他服务如 Bitwarden、NextCloud 和 Restya 都能开箱即用,但 Discourse 似乎非常挑剔,因为无论我尝试什么,似乎都没有效果。

在配置方面,我将其设置如下:

对于 SSL,我使用的是从 NGINX-Proxy 服务器(位于 Discourse 或其他正在运行的应用程序之上)应用的证书。

(澄清一下,反向代理服务器是一台独立的虚拟机,同样运行 Ubuntu 18.04,并安装了 Nginx-Proxy-Manager,这是一个用于管理多个 NGINX 反向代理设置的解决方案。)

如果您正在配置反向代理,则需要自行处理。您需要相应地编辑 app.yml 文件,并执行 ./launcher rebuild app 命令。

好的,我搞定了。

对于像我这样有独立虚拟机/主机/其他环境来运行 NGINX 服务器的用户来说,无需启用任何自定义标志或功能。

只需将域名指向你的 IP 地址,配置 NGINX 将该主机名路由到你的 Discourse 服务器,它应该就能正常工作。(如果你使用 SSL,请相应地进行配置。)

真不敢相信我在这上面浪费了 5 个多小时,折腾半天才发现默认设置本来就能完美运行。