Docker上Redmine的多个实例

Docker上Redmine的多个实例,docker,docker-compose,redmine,Docker,Docker Compose,Redmine,我一直在尝试在两个不同的子域上托管多个Redmine实例,例如Redmine.domain-a.com和Redmine.domain-b.com。我需要它们都有SSL证书,我通常使用Let's Encrypt,我发现了这个 我设法建立了一个红色矿井,但我想不出一个办法来建立第二个。要么我遇到了nginx的端口冲突,要么我只添加了具有不同虚拟域和端口的redmine容器,它开始运行正常,但在子域上仍然不可访问。这是我第一次使用Docker,也许值得一提的是,我的VPS正在运行Debian 8。如

我一直在尝试在两个不同的子域上托管多个Redmine实例,例如Redmine.domain-a.com和Redmine.domain-b.com。我需要它们都有SSL证书,我通常使用Let's Encrypt,我发现了这个


我设法建立了一个红色矿井,但我想不出一个办法来建立第二个。要么我遇到了nginx的端口冲突,要么我只添加了具有不同虚拟域和端口的redmine容器,它开始运行正常,但在子域上仍然不可访问。这是我第一次使用Docker,也许值得一提的是,我的VPS正在运行Debian 8。

如果你想在同一台机器上以相同的ip地址和端口运行2个web服务器(Docker容器),你必须在配置中添加一个反向代理。这是因为网络连接将始终基于您的服务器IP和端口(web为80443)。但是HTTP(s)请求将包含主机名。像HAProxy这样的反向代理接收HTTP请求,查看主机名并将请求转发到可能具有不同端口甚至不同IP地址的容器(您可以将请求转发到容器内部IP,这样就不需要端口映射)

您的证书也将由负载平衡器提供,它可能以这种方式起作用

这将是请求流:

                         ┌-> Container 1
Client --> ReverseProxy -|
                         └-> Container 2
  • 您的ReverseProxy(如HaProxy)监听您的公共ip和端口80/443
  • 这两个容器只能在主机上访问,并且可以通过其内部docker ip或prot映射进行访问