Traefik 失败 https 重定向

Posted

技术标签:

【中文标题】Traefik 失败 https 重定向【英文标题】:Traefik failing https redirection 【发布时间】:2020-06-30 09:11:54 【问题描述】:

我有一个使用 traefik 1.7 的 docker-compose 作为我网站的代理。我的网站服务器是 Next.js。在我的其他应用程序上使用相同的配置时,我无法执行 http 到 https 重定向。

这是我的 docker-compose.yml :

version: '2'

services:
  proxy:
    image: traefik:1.7
    restart: always
    command: |-
      --logLevel=DEBUG
      --web
      --entrypoints='Name:http Address::80 Redirect.EntryPoint:https Redirect.Permanent:true'
      #--entrypoints='Name:http Address::80'
      --entrypoints='Name:https Address::443 TLS'
      --docker
      --acme
      --acme.entrypoint=https
      --acme.email=test@mail.com
      --acme.storage=/etc/traefik/acme.json
      --acme.ondemand=false
      --acme.onhostrule=true
      --acme.httpChallenge.entryPoint=http
    networks:
      - default
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik:/etc/traefik/
  website-preprod:
    image: registry/taggedimage
    restart: always
    labels:
      - "traefik.backend=my-website"
      - "traefik.frontend.rule=Host:domainname.com"
      - "traefik.docker.network=root_default"
      - "traefik.frontend.entryPoints=http,https"
      - "traefik.port=3000"
    environment:
      - HTTPS_CERT=server/certificates/dev.crt
      - HTTPS_KEY=server/certificates/dev.key
      - HTTP2=false
      - API_ENDPOINT=https://api.domainname.com/api
      - HTTPS=true
    depends_on:
      - proxy
    networks:
      - default
      - inner
networks:
  inner:
    driver: bridge
    internal: true

Https 有效,但从 http 到 https 的重定向无效。 Traefik 日志似乎没问题,只是它根本不重定向。

【问题讨论】:

【参考方案1】:

看来评论#--entrypoints='Name:http Address::80' 是那里的问题。由于 docker-compose 被翻译成命令行,这一行打破了重定向的前一行。

【讨论】:

以上是关于Traefik 失败 https 重定向的主要内容,如果未能解决你的问题,请参考以下文章

在 Traefik 中从一个域重定向到另一个域

Traefik v2.5 未重定向到搬运工容器。 404 未找到

在 k3s 上使用 traefik 入口生成重定向?

nginx 代理https到http重定向失败的问题

CORS 请求重定向失败

Traefik v2:404,同时将 HTTP 流量全局路由到 HTTPS