使用 Caddy 作为 rproxy 设置 discourse 的帮助

如果我没有在正确的版块发帖,我很抱歉。

我正在使用 Oracle Free tier 作为我的服务器,并且我有一个运行着几个 Docker 容器的 Ubuntu 安装。
我正在使用 Caddy,它也运行在 Docker 中,作为我所有容器的反向代理。

现在我需要设置 Discourse 作为这个拼图的最后一块,但我不知道如何进行。
我已经在我的另一个测试服务器上测试并安装了带有标准 Docker 安装的 Discourse,但那是整个包,如果我需要使用 Caddy 作为反向代理,我猜我需要禁用一些功能?

如果有人能给我指明正确的方向,我将非常感激。

这可能有所帮助:

1 个赞

我认为这让我走上了正确的轨道。但不确定我指向的路径是否正确。

在我的 app.yml 中,我在这里设置了我的卷:
并且我的 Discourse 可以顺利构建。

volumes:
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone/log/var-log
      guest: /var/log

阅读那个论坛帖子后,我尝试了一些 Caddyfile 的配置。

forum.mydomain.com {
  reverse_proxy unix//opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}
forum.mydomain.com {
  reverse_proxy /opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}

它们都不起作用,但我真的不确定我是否做得对 xD

你如何启动 Caddy?

原始主题中的这一行需要根据你的目录进行调整才能正常工作。除非 Caddy 容器中挂载了正确的目录,否则它无法看到 Discourse 创建的套接字。

啊,你的意思是需要将 discourse sock 挂载到 caddy?这说得通!

不过我昨晚尝试了别的方法。
当 discourse 启动时,它运行在一个 docker 桥接网络中。如果我只是添加所有其他容器(包括 Caddy)所在的 docker-default 网络,那么我就可以像处理其他容器一样简单地将其添加到 caddy 中。

forum.mydomain.com {
  reverse_proxy app:80
  import cloudflare
}

不过我没能弄清楚那些 yml 文件中定义 docker 网络的地方。如果我能将其从桥接网络改为在 docker 默认网络中运行,那对我来说就一切都解决了。

这可能有所帮助:

虽然它是针对 Nginx Proxy Manager 的,但它描述了将容器置于默认桥接网络下的过程。

1 个赞

是的!它奏效了!

我不得不更改几处,但它几乎和我链接的第一个帖子一样。

在 Caddyfile 中,我必须这样写
这与帖子中的写法略有不同。

forum.mydomain.com {
  reverse_proxy unix//sock/nginx.http.sock
  import cloudflare
}

并且我添加了 volume,现在想来这当然是有道理的。
我正在使用 docker-compose。

  caddy:
    container_name: Caddy
    build:
      dockerfile: ./caddy-config/Dockerfile
      context: .
    labels:
      com.centurylinklabs.watchtower.enable: "false"
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./docker_configs/caddy/data:/data
      - ./docker_configs/caddy/Caddyfile:/etc/caddy/Caddyfile
      - ./docker_configs/caddy/srv:/srv
      - /var/discourse/shared/standalone:/sock
    restart: always

非常感谢您的帮助!

1 个赞

这可能是由于 Caddy 本身的上游更改所致。据我所知,主题中链接的镜像仍可与提供的配置一起使用。

1 个赞