我有一个 docker-compose.yml ,它指定了Traefik代理服务,如下所示:
proxy:
container_name: traefik_proxy
image: traefik:alpine
command: >-
--docker --logLevel=INFO \
--acme \
--acme.caserver="https://acme-v02.api.letsencrypt.org/directory" \
--acme.acmelogging \
--acme.dnschallenge=false \
--acme.entrypoint="https" \
--acme.httpchallenge \
--acme.httpChallenge.entryPoint="http" \
--acme.onhostrule=true \
--acme.storage="/root/acme.json" \
--acme.email="mark@bogus.net" \
--entrypoints="Name:http Address::80 Redirect.EntryPoint:https" \
--entryPoints="Name:https Address::443 TLS TLS.MinVersion:VersionTLS12..." \
--defaultentrypoints="http,https"
我使用以下方法在生产主机上部署新的Docker容器:
NAME=crb
HOST="crb.net"
IMAGE="summittdweller/crb"
docker container run -d --name ${NAME} \
--label traefik.backend=${NAME} \
--label traefik.docker.network=opt_webgateway \
--label traefik.port=80 \
--label "traefik.frontend.rule=Host:${HOST}" \
--label com.centurylinklabs.watchtower.enable=true \
--network opt_webgateway \
--restart always \
${IMAGE}
通过此部署,我的网站可以在 https://crb.net 正确打开。
我正在尝试为我的部署命令设计Traefik规则,以使 crb.ne t网站将在以下三个地址中的任何一个上响应... crb.net ,< em> thecrb.net 或 thecrb.com 。我已经注册了所有三个域,但是无法提出一套有效的Traefik规则。
我最近尝试将以下“主机”规则替换为:
HOST="crb.net|thecrb.net|thecrb.com"
--label "traefik.frontend.redirect.regex=^https://(www.)?(${HOST})(.+)" \
--label "traefik.frontend.redirect.replacement=https://crb.net$3" \
--label "traefik.frontend.redirect.permanent=true" \
但是我仍然在每个域上收到404错误。谁能建议可能有用的重定向规则或其他规则集?