- Вы не можете одновременно использовать перенаправление
entrypoint
и regex
на одной и той же точке входа.
Обратите внимание, что regex
и replacement
не имеютустанавливается в структуре перенаправления, если для перенаправления определена точка входа (в этом случае они не будут использоваться).
https://docs.traefik.io/v1.7/configuration/entrypoints/#redirect-http-to-https
Сертификаты с подстановочными знаками не могут быть получены при вызове HTTP:
https://docs.traefik.io/v.7/configuration/acme/#wildcard-domains Вам необходимо использовать запрос DNS
https://docs.traefik.io/v1.7/configuration/acme/#dnschallenge (отредактировано), и перед тем, как вы спросите: вы не можете использовать оба (запрос HTTP и DNS)вызов) одновременно.
Edit
Я проиллюстрирую перенаправления с 2 простыми конфигурациями (самозаверяющие сертификаты вместо acme, ноэто то же самое).
Эти две конфигурации работают без каких-либо изменений, вам нужно всего лишь сделать docker-compose up
.
Обратите внимание, что перенаправление не влияет на вызов HTTP (ACME).
Удалите перенаправление www и HTTPS
Цель:
$ curl --insecure -L http://www.whoami.docker.localhost
# http://www.whoami.docker.localhost -> https://whoami.docker.localhost
$ curl --insecure -L https://www.whoami.docker.localhost
# https://www.whoami.docker.localhost -> https://whoami.docker.localhost
$ curl --insecure -L http://whoami.docker.localhost
# http://whoami.docker.localhost -> https://whoami.docker.localhost
$ curl --insecure -L https://whoami.docker.localhost
# https://whoami.docker.localhost -> https://whoami.docker.localhost
I.Пример без TOML: (docker-compose.yml
)
version: "3"
services:
reverseproxy:
image: traefik:v1.7.8
command:
- --logLevel=INFO
- --defaultentrypoints=http,https
- --entrypoints=Name:http Address::80 Redirect.Regex:^http://(?:www\.)?(.+) Redirect.Replacement:https://$$1 Redirect.Permanent:true
- --entrypoints=Name:https Address::443 TLS Redirect.Regex:^https://www\.(.+) Redirect.Replacement:https://$$1 Redirect.Permanent:true
- --docker
- --docker.domain=docker.localhost
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
whoami:
image: containous/whoami
labels:
- "traefik.frontend.rule=Host:whoami.docker.localhost"
II.Пример с TOML: (docker-compose.yml
+ traefik.toml
)
version: "3"
services:
reverseproxy:
image: traefik:v1.7.8
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
whoami:
image: containous/whoami
labels:
- "traefik.frontend.rule=Host:whoami.docker.localhost"
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "^http://(?:www\.)?(.+)"
replacement = "https://$1"
permanent = true
[entryPoints.https]
address = ":443"
[entryPoints.https.redirect]
regex = "^https://www\\.(.+)"
replacement = "https://$1"
permanent = true
[entryPoints.https.tls]
[api]
[docker]
domain = "docker.localhost"