我有一个Kubernetes设置,其中Traefik是我的入口控制器 . Traefik是一个正在侦听SSL端口(TCP:443)的AWS ELB的后面,因此它可以使用ACM证书终止SSL . 然后它将负载 balancer 到跟踪TCP:80的traefik(在k8s中) . 我们需要这样设置,因为我们在traefik中基于每个入口进行白名单并使用代理协议标头来执行此操作(我们尝试在http负载均衡器上使用x-fowarded-for whitelisting但这很容易绕过) .
这适用于进入的HTTPS流量,但我想将http重定向设置为https . 到目前为止,我已经在负载均衡器上 Build 了一个TCP:80监听器转发到TCP:81 . 我还使用配置文件设置了Traefik入口点:
defaultEntryPoints = ["http"]
debug = false
logLevel = "INFO"
# Do not verify backend certificates (use https backends)
InsecureSkipVerify = true
[entryPoints]
[entryPoints.http]
address = ":80"
compress = true
[entryPoints.http.proxyProtocol]
insecure = true
trustedIPs = ["10.0.0.0/8"]
[entryPoints.redirect]
address = ":81"
compress = true
[entryPoints.http.redirect]
entryPoint = "http"
然而,这给了一个
400 Bad Request
当我尝试访问任何服务时:80 .
我假设这是因为这个方法工作traefik本身需要有一个SSL监听器,而不是ELB .
有没有办法可以这样设置,以便所有访问traefik的流量:81被重写为https?