【问题标题】:Traefik 2 http to https redirect with tls not workingTraefik 2 http到https重定向,tls不起作用
【发布时间】:2020-04-01 18:05:26
【问题描述】:

我想在一个 IngressRoute 中设置 http 到 https 重定向,但是当我尝试访问 http 端点 traefik 时使用下面的配置返回 404 not found 错误。如果我删除 tls 部分重定向有效,但 tls 无效。

我可以同时工作吗?

traefik 版本 2.1.0-rc2

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: console-web
  namespace: dev
  labels:
    app: console-web
spec:
  entryPoints:
    - web
    - websecure
  routes:
    - match: Host(`console.example.com`)
      kind: Rule
      services:
        - name: console-web
          port: 8080
      middlewares:
        - name: https-redirect
  tls:
    secretName: example-com-tls

【问题讨论】:

  • 我现在在使用 v2.1.6 时遇到了同样的问题。你设法解决了这个问题吗?
  • @sbrattla 很遗憾,没有

标签: kubernetes traefik traefik-ingress


【解决方案1】:

这是一个老问题,但这可能对某人有所帮助。这可能无法直接工作,因为我没有测试过。对于 Kubernetes,它应该按照以下方式工作,首先你定义中间件的工作方式

未经测试的代码

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-redirectscheme
spec:
  redirectScheme:
    scheme: https

然后定义 IngressRoute

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: ingress1
  namespace: default
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`somehost`)
      kind: Rule
      services:
        - name: console-web
          port: 8080
  tls:
    secretName: example-com-tls
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: ingress2
  namespace: default
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`somehost`)
      middlewares:
        - name: test-redirectscheme
      kind: Rule
      services:
        - name: console-web
          port: 80

需要两个入口,因为一个将流量重定向到另一个。我还想如果你没有两个端口,你可以重用前一个端口,因为无论如何它都会被重定向到 https。让我知道它是否不起作用。

在 http 端点的 404 问题上为 docker 花费数小时后,我发现了这个https://stackoverflow.com/a/62093408/2442649

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2021-07-20
    • 2014-03-10
    • 2018-06-11
    • 2015-07-28
    • 2023-01-04
    • 2022-01-14
    相关资源
    最近更新 更多