Traefik: Простое переадресация HTTPS-протокола Letsencrypt на службу whoami выдает "404 страница не найдена"
Я пытался запустить его в течение двух дней, и некоторое простое перенаправление HTTP -> HTTP не работает!:(
Довольно простой вариант использования:
whoami.my-example-domain.com:80 => перенаправить на whoami.my-example-domain.com:443, а затем traefik внутренне перенаправит на: 80 моего контейнера-установщика службы whoami.
Вот docker-compose.yml
version: "3"
services:
reverse-proxy:
image: traefik:alpine
command:
- --logLevel=WARN
- --defaultentrypoints=http,https
- --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
- --entrypoints=Name:https Address::443 TLS
- --acme
- --acme.email=myemail@gmail.com
- --acme.storage=acme.json
- --acme.entryPoint=https
- --acme.httpChallenge.entryPoint=http
- --acme.OnHostRule=true
- --acme.onDemand=false
- --acme.acmeLogging=true
- --docker
- --docker.watch
- --docker.exposedbydefault=false
- --docker.domain=docker.localhost
restart: always
networks:
- web
ports:
- "80:80" # The HTTP port
- "443:443" # The HTTPS port
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- /opt/data/traefik/acme.json:/acme.json
whoami:
image: containous/whoami # A container that exposes an API to show its IP address
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:whoami.some-example-domain.com"
- "traefik.port=80"
- "traefik.frontend.entryPoints=http"
networks:
web:
external: true
Когда я сейчас звоню http://whoami.some-example-domain.com/ (это просто демонстрационный домен и не будет работать) => он перенаправляет на HTTP... что здорово, но потом выбрасывает "404 страница не найдена "стандартная ошибка traefik.
Если вы уже пытались установить следующие метки для контейнера:
- "Traefik.port = 80"
- "Traefik.frontend.entryPoints= HTTP"
Это тоже не сработало.
Любая помощь будет оценена! Заранее спасибо!
С Уважением,
Sascha
1 ответ
Вы должны удалить traefik.frontend.entryPoints
(связано с defaultentrypoints
) или использовать traefik.frontend.entryPoints=http,https
version: "3"
services:
reverse-proxy:
image: traefik:v1.7.8
command:
- --logLevel=WARN
- --defaultentrypoints=http,https
- --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
- --entrypoints=Name:https Address::443 TLS
- --acme
- --acme.email=myemail@gmail.com
- --acme.storage=acme.json
- --acme.entryPoint=https
- --acme.httpChallenge.entryPoint=http
- --acme.OnHostRule=true
- --acme.onDemand=false
- --acme.acmeLogging=true
- --docker
- --docker.exposedbydefault=false
- --docker.domain=some-example-domain.com
restart: always
networks:
- web
ports:
- "80:80" # The HTTP port
- "443:443" # The HTTPS port
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- /opt/data/traefik/acme.json:/acme.json
whoami:
image: containous/whoami # A container that exposes an API to show its IP address
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:some-example-domain.com"
networks:
- web
networks:
web:
external: true