Я пытаюсь начать использовать Traefik с новым проектом "зеленого поля".Я просто не уверен на 100%, как настроить систему, чтобы сделать то, о чем я думаю.
У меня есть следующая система, разработанная и работающая с docker-compose up
.Каждый элемент является контейнером Docker.
Так что все они работают и работают.Yay!
Но я пытаюсь сделать следующее, используя Traefik в качестве обратного прокси-сервера перед всеми этими:
=> Traefik Gateway Reverse proxy (public can access)
\______ Network: FrontEnd
\____ WWW SPA Web App
\______ Network: BackEnd microservices
\____ Microservice 1
\____ Microservice 2
\____ Microservice 3
Идея, представленная выше, означает, что FrontEnd обслуживает(в данном случае это всего лишь одна служба, но позже она может содержать некоторые межсетевые интерфейсы (BFF)), не имеющие доступа к чему-либо в BackEnd Network, и наоборот.Я знаю, что все они могут входить в одну и ту же Сеть, но просто подумали, что было бы лучше оставить Фронт и Тыл раздельными.
Так что я не был уверен, как я могу это сделать или даже если это возможно.
Я предполагаю, что мне понадобится файл 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"