Это мой сценарий:
В моей компании у нас есть внешний обратный прокси, который перенаправляет на внутренние серверы в зависимости от проекта, поэтому мы можем использовать HTTPS для внешних подключений.
В моем случае у меня есть следующий docker-compose.yml
, который имеет два сервера и службу traefik в качестве точки входа, прослушивающей порт 80:
version: '3.7'
services:
traefik:
image: "traefik:v2.2"
container_name: "traefik"
ports:
- "80:80"
networks:
- pg_database
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
command:
# entrypoints
- "--entrypoints.web.address=:80"
# providers
- "--providers.docker=true"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.exposedByDefault=false"
service_one:
image: custom-image
restart: always
expose:
- 3000
networks:
- pg_database
labels:
# Explicitly tell Traefik to expose this container
- "traefik.enable=true"
# Add middleware path replace: /dashboard(/.*)? -> $1
- "traefik.http.middlewares.pathreplacemiddleware.replacepathregex.regex=^\\/dashboard(\\/.*)?"
- "traefik.http.middlewares.pathreplacemiddleware.replacepathregex.replacement=$$1"
# Configure router (HTTP)
- "traefik.http.routers.service_one_http.rule=Host(`mydomain.com`) && PathPrefix(`/dashboard/`)"
- "traefik.http.routers.service_one_http.entrypoints=web"
- "traefik.http.routers.service_one_http.middlewares=pathreplacemiddleware"
- "traefik.http.routers.service_one_http.priority=2"
service_two:
image: custom-image
expose:
- 3000
networks:
- pg_database
labels:
# Explicitly tell Traefik to expose this container
- "traefik.enable=true"
# Configure router (HTTP)
- "traefik.http.routers.service_two_http.rule=Host(`mydomain.com`)"
- "traefik.http.routers.service_two_http.entrypoints=web"
- "traefik.http.routers.service_two_http.priority=1"
networks:
pg_database:
external: true
Нет проблем с доступом непосредственно к порту 80 (http) из внутренняя сеть компании. Проблема в том, что когда вы пытаетесь получить доступ через https извне, страница не загружается и показывает следующую ошибку: ERR_TOO_MANY_REDIRECTS
.
Как видите, у меня нет правил перенаправления в traefik, поэтому я не могу понять, что могло случиться.