[已解决] 两个独立服务器的安装问题

大致来说,我遇到的情况如下。

我有两台硬件服务器。一台运行 Unraid,另一台用于运行 ESXi 虚拟机。

Unraid 服务器上运行着 Nginx 反向代理管理器。我在 ESXi 机器上有一台 Ubuntu 18.04 虚拟机。在安装过程中,系统提示我端口 80 已连通,但端口 443 未连通。有人使用过类似的配置吗?

在反向代理中,我已将域名配置为使用 SSL,并设置在端口 80 上。只是我对相关配置还不够了解(将此作为学习过程),无法弄清楚如何让两者协同工作,从而成功安装并运行 Discourse。

谢谢。

更新:我已经解决了问题。指引我找到正确方向的链接如下:
https://www.digitalocean.com/community/tutorials/how-to-install-discourse-behind-nginx-on-ubuntu-14-04

1 个赞

仅供参考,

下一步,您可以考虑将代理改为与 Docker 容器中的 Unix 域套接字通信。

这种设置提供了更大的灵活性,因为您可以简单地从容器外部创建指向容器内部的符号链接,轻松在不同容器之间切换,无需任何停机时间,也无需重启 Nginx。

例如(在 Linux 上有效,macOS 上不适用):

Unix 套接字可能位于此处(容器视角),示例如下:

/shared/mycool.discourse.sock

容器外部:

ln -sf /var/discourse/shared/socket-only/mycool.discourse.sock  /tmp/mycool.discourse.sock

这样,您的外部 nginx 反向代理服务器即可指向:

/tmp/mycool.discourse.sock

假设您需要添加一些插件并重新构建。

您可以使用 /shared/socket-only2 进行重新构建(只需修改一个简单的 yml 文件),要切换到新容器,只需执行:

ln -sf /var/discourse/shared/socket-only2/mycool.discourse.sock  /tmp/mycool.discourse.sock

(或者将其放在 /var/run 或其他位置……)

这种方法运行非常顺畅,您可以在几毫秒内在不同容器之间来回切换,无需重启 nginx 来重新映射 TCP/IP 域套接字。

我已对此进行了完整测试,效果完美且流畅。

该方法在 Apache2 上(几乎)也适用,但在 Apache2 中无法使用符号链接,必须在 Apache2 站点配置中使用容器的完整路径,因此切换时需要重启 Apache2。不过,既然您是使用 nginx 的人,这在容器外部将会非常简单且顺畅。

太棒了,谢谢。我今晚晚些时候会看一下。