使用 Nginx Proxy Manager 管理多个 Discourse 站点

安装多个实例的小教程 :disguised_face:

在本例中,我们将从一个全新的服务器安装开始,然后可能需要恢复一个旧实例。

第 0 步:备份!!!

下载备份。稍后您将需要它。

第 1 步:NGINX 代理管理器

mkdir -p /opt/nginx-proxy-manager
cd /opt/nginx-proxy-manager
nano docker-compose.yml
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80'    # http / reserved!
      - '81:81'    # web-admin port
      - '443:443'  # https / reserved!
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

最后运行:docker-compose up -d

(对于像我有时一样懒惰的人,只需使用 casaOS(使用非 80/81/443 端口)。只需确保您使用安全的登录凭据和一个带有 SSL 证书的额外代理主机以增加安全性。如果您知道自己在做什么,甚至可以设置一些防火墙规则。)

第 2 步:在 Ubuntu 服务器上安装 Docker

sudo apt update && apt upgrade -y

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io

第 3 步:Discourse 安装准备

git clone https://github.com/discourse/discourse_docker.git /var/discourse

cp /var/discourse/samples/standalone.yml /var/discourse/containers/app1.yml
nano /var/discourse/containers/app1.yml

cp /var/discourse/samples/standalone.yml /var/discourse/containers/app2.yml
nano /var/discourse/containers/app2.yml

对您的 app.yml 文件进行任何必要的更改。这包括为每个实例公开不同的端口(是的,您甚至可以将其用于维护)、邮件设置等。
例如,app1 使用端口 8080/1443,app2 使用端口 8081/2443 用于 http/https。

/var/discourse/launcher rebuild app1
/var/discourse/launcher rebuild app2

第 4 步:最后但同样重要的是配置 NGINX 代理管理器

观看此视频以基本了解如何使用 NGINX 代理管理器。

您需要做的就是将您的代理主机条目指向每个实例(http 端口,例如 8080 和 8081,使用您的本地或公共 IP,这取决于您),您将能够为每个实例和域获取免费的 Let’s Encrypt 证书。只需确保启用强制 SSL 等。

第 5 步:完成。喝杯咖啡。

在我的情况下,它工作得很完美。

预装的软件依赖项可能存在一些小问题,但我相信您会找到解决方案。不要因为我关于 casaOS 的建议而生气。但对于喜欢摆弄服务器、以易于使用、安全可靠的方式利用所有可用资源的人来说,我相信您会发现这个 Docker 管理很有趣。

第 6 步:最后,恢复您之前的备份。

1 个赞