You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Traefik中使用中间件实现HTTP到HTTPS的重定向

问题根因&排查解决步骤

1. 优先排查拼写错误(当前404的核心原因)

测试容器whoami的配置标签存在拼写错误:

# 错误写法,traefik拼写为treafik,a和e顺序反了,该标签完全不生效
- "treafik.http.routers.whoami.entrypoints=web,web-secure"

该标签失效后,80端口(web入口点)没有绑定whoami的路由规则,访问HTTP版本的地址自然匹配不到服务,返回404。

2. 修正全局EntryPoint命名不一致问题

你的Traefik全局配置中,重定向目标和443入口点命名不匹配:

# 重定向配置里目标叫 web-secure
- --entrypoints.web.http.redirections.entryPoint.to=web-secure
# 但443入口点定义叫 web-secured(多了一个d)
- --entrypoints.web-secured.address=:443

命名不一致导致全局HTTP到HTTPS的重定向规则完全失效,需将二者命名统一,比如都改为web-secure。

3. 修正路由逻辑冲突问题

你当前的配置存在重复逻辑和错误配置:

  • 既配置了全局80端口自动重定向到443,又给单个服务加了HTTPS重定向中间件,逻辑重复
  • 给绑定了80端口(HTTP)的路由开启了tls=true,会导致Traefik尝试在HTTP请求上做TLS握手,直接失败

推荐二选一配置即可:

方案A:使用全局重定向(更简单)

直接删除whoami配置里的重定向中间件标签,同时将whoami的路由仅绑定到443入口点:

labels:
  - "traefik.enable=true"
  # 仅绑定HTTPS入口点
  - "traefik.http.routers.whoami.entrypoints=web-secure"
  - "traefik.http.routers.whoami.rule=Host(`whoami.testing.domain.com`)"
  - "traefik.http.routers.whoami.tls=true"
  - "traefik.http.routers.whoami.tls.certresolver=mytlschallenge"

全局配置已经会自动把所有80端口的请求重定向到443,不需要单独给服务加配置。

方案B:使用单独中间件重定向

如果不需要全局重定向,要给部分服务单独开重定向,就给HTTP和HTTPS分别定义独立路由:

labels:
  - "traefik.enable=true"
  # HTTP路由:绑定80端口,不开TLS,仅加跳转中间件
  - "traefik.http.routers.whoami-http.entrypoints=web"
  - "traefik.http.routers.whoami-http.rule=Host(`whoami.testing.domain.com`)"
  - "traefik.http.routers.whoami-http.middlewares=httpsredirect@file"
  # HTTPS路由:绑定443端口,开TLS和证书
  - "traefik.http.routers.whoami.entrypoints=web-secure"
  - "traefik.http.routers.whoami.rule=Host(`whoami.testing.domain.com`)"
  - "traefik.http.routers.whoami.tls=true"
  - "traefik.http.routers.whoami.tls.certresolver=mytlschallenge"

4. 验证生效步骤

  1. 修正所有配置后,删除旧的Traefik和whoami容器:docker rm -f traefik whoami
  2. 重新启动服务:docker compose up -d
  3. 查看Traefik日志确认无配置错误:docker logs traefik
  4. 访问HTTP版本的地址,验证是否正常301/302跳转到HTTPS。

内容的提问来源于stack exchange,提问作者PovilasID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:00:04