Traefik 2 中间件适用于 https,不适用于 http

Traefik 2 中间件适用于 https,不适用于 http

我正在尝试设置一个路由,执行基本的 301 重定向,并支持 HTTP 和 HTTPS 请求。预期结果是请求http://subdom.domain.org或者https://subdom.domain.org将收到 301 并转发至https://othersub.domain.org/route. 实际结果是https://subdom.domain.org301 符合预期,但是http://subdom.domain.org404。通过配置,您可以看到我尝试过将请求提升到 HTTPS,希望规则能够在那里被捕获,但是根据中间件的配置方式,我希望它在任何一种情况下都能正常工作。

这是我当前的配置:

http:
  routers:
    subdom.domain.org:
      entryPoints:
        - web
        - web-secure
      middlewares:
        - https-redirect # I've tried with this on and off
        - sudbdom-redirect 
      service: dummy
      rule: Host(`subdom.domain.org`)
      tls: 
        certResolver: letsEncryptResolver  

  middlewares:
    https-redirect:
      redirectScheme:
        scheme: https
    subdom-redirect:
      redirectRegex:
        regex: ".*"
        replacement: "https://othersub.domain.org/route"
        permanent: true

  services:
    dummy:
      loadBalancer:
        servers:
        - url: localhost

我最初在匹配重定向的特定正则表达式模式时遇到了麻烦,但后来我意识到我根本不需要确定模式的范围,因为我是按路由应用的,所以通配符匹配似乎在那里效果很好。任何想法或建议都值得赞赏。谢谢!

相关内容