不确定如何在Traefik反向代理中定义前端/后端

时间:2018-10-12 08:23:47

标签: docker docker-compose microservices traefik

我正在尝试将Traefik与一个新的“绿地”项目一起使用。我只是不是100%地确定如何设置系统以完成我想实现的目标。

我设计了以下系统,并与docker-compose up一起使用。每个项目都是一个Docker容器。

因此它们都可以运行。是的!

但是我试图做以下事情,利用Traefik作为所有这些前面的反向代理:

=> Traefik Gateway Reverse proxy (public can access)
    \______ Network: FrontEnd
            \____ WWW SPA Web App
    \______ Network: BackEnd microservices
            \____ Microservice 1
            \____ Microservice 2
            \____ Microservice 3

上面的想法意味着FrontEnd服务(在这种情况下,只有1个服务,但以后可能包含一些后端到前端网关(BFF))无法访问后端网络中的任何内容,反之亦然。我知道他们都可以进入同一个网络,但只是认为将正面和背面分开放置可能会更好。

所以我不确定如何做到这一点,甚至是不可能的。

我假设我需要一个traefik.toml文件,并且需要以某种方式将其复制到某些Docker文件中?或docker-compose文件中?

我也想让Traefik成为Https终止点(使用http-> https重定向,所有扩展坞/教程都显示了如何执行此操作),但是现在我没有域名。我只是在做一些工作来使这一切正常运行。

我还没有.toml文件->只有我的docker-compose.yml

<snippet that is how i've setup my traefik service
...
apigateway.web:
  image: traefik
  command: --api --docker # Enables the web UI and tells Traefik to listen to docker
  environment:
    - COMPOSE_CONVERT_WINDOWS_PATHS=1
  ports:
    - "80"   # The HTTP port
    - "8080" # The Web UI (enabled by --api)
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
  depends_on:
    - ${DOCKER_REGISTRY}ms1.api
    - ${DOCKER_REGISTRY}ms2.api
    - ${DOCKER_REGISTRY}ms3.api
  labels:
    - "traefik.frontend.rule=Host:apigateway.docker.localhost"

<docker-compose.override.yml>
apigateway.web:
    ports:
    - "5002:80"
    - "5003:8080"

0 个答案:

没有答案