将Traefik从主机规则移至重定向规则

时间:2019-12-02 16:46:38

标签: docker redirect docker-compose traefik

我有一个 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错误。谁能建议可能有用的重定向规则或其他规则集?

0 个答案:

没有答案