我正在尝试将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"