【问题标题】:Docker + Caddy and reverse_proxy through multiple instances of docker-compose apps but via different domainDocker + Caddy 和 reverse_proxy 通过 docker-compose 应用程序的多个实例但通过不同的域
【发布时间】:2021-07-09 21:58:54
【问题描述】:

我有这种fs:

分布 app1(码头工人撰写) 应用程序2(码头工人撰写) app3 (docker-compose)

app1、app2、app3 是同一个容器化应用,例如:

services:
  services1:
    build:
     context: ./services1/
    env_file:
      - .env
    command: npm run start
  services2:
    build:
     context: ./services2/
    env_file:
      - .env
    command: npm run start

app1、app2、app3 是不同客户端的后端,但它们是完全相同的应用程序,并且...它们在同一个端口上运行。

我的问题是:如何使用 Caddyfile 重定向到我的后端,例如:

subapp1.app1.domain.io     {
        reverse_proxy app1_subapp1
}

subapp2.app1.domain.io     {
        reverse_proxy app1_subapp2
}

subapp1.app2.domain.io     {
        reverse_proxy app2_subapp1
}

subapp2.app2.domain.io     {
        reverse_proxy app2_subapp2
}

我尝试使用外部网络的方法,但是......不是很方便。我想我的情况不是很罕见……您有什么建议、意见吗?

谢谢!

【问题讨论】:

    标签: docker docker-compose reverse-proxy caddy


    【解决方案1】:

    一种简单的方法是从同一个 docker-compose.yml 运行 Caddy,如下所示:

      caddy:
        [the stuff caddy needs to run in docker]
      services1:
        [the stuff services1 needs to run in docker]
      services2:
        [the stuff services2 needs to run in docker]
    

    这样它们将自动在同一个 Docker 网络上。那么Caddyfile 只需要docker-compose.yml 中的服务名称,它就会自己找出端口/容器¹。

    subapp1.app1.domain.io     {
            reverse_proxy services1
    }
    
    subapp2.app1.domain.io     {
            reverse_proxy services2
    }
    

    这只是一种选择。您可以编写多个文件,但随后需要指定网络。

    注意事项:

    1. 假设您在“docker-compose.yml”中使用相对较新的版本。截止日期可能是version '2.0',但我记不太清了。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2020-06-26
      • 2019-05-16
      相关资源
      最近更新 更多