HTTPS 请求重定向到 HTTP
HTTPS request redirected to HTTP
我是 运行 traefik 入口后面的 Gunicorn。 HTTP 被 traefik 重定向到 HTTPS,但出于某种原因,gunicorn 回复了一个指向 HTTP 的 301。我已经尝试了几乎所有我知道的选项,但没有找到任何解决方案。我认为它可能与 .
之类的东西有关
这是我在入口处使用的注释:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/frontend-entry-points: http,https
traefik.ingress.kubernetes.io/protocol: http
ingress.kubernetes.io/ssl-redirect: 'true'
traefik.frontend.rule.type: PathPrefix
ingress.kubernetes.io/custom-request-headers: 'x-forwarded-proto:https||x-forwarded-ssl:on||x-forwarded-protocol:ssl'
我不确定 x-forwarded
headers 是由 traefik 自动设置的,所以我对它们进行了硬编码。
在 gunicorn 方面,我使用:
command:
- '/usr/local/bin/gunicorn'
args:
- '-b'
- '0.0.0.0:8080'
- '--log-level'
- 'debug'
- '--access-logfile'
- '-'
- '--error-logfile'
- '-'
- '--forwarded-allow-ips'
- '0.0.0.0'
- '--proxy-allow-from'
- '0.0.0.0'
- '--proxy-protocol'
- 'myapp'
同样的事情我一直在玩这些选项,但似乎没有任何改变。
为您的 header 尝试这个:
ingress.kubernetes.io/ssl-proxy-headers: "X-Forwarded-Proto: https"
ingress.kubernetes.io/ssl-redirect: "true"
(这是用于 aws elb 的配置。我不知道导致它的具体配置)
从那里开始,您可能会遇到不尊重 X-Forwarded-Proto header 的 gunicorn 问题,并希望查看他们的文档。
我是 运行 traefik 入口后面的 Gunicorn。 HTTP 被 traefik 重定向到 HTTPS,但出于某种原因,gunicorn 回复了一个指向 HTTP 的 301。我已经尝试了几乎所有我知道的选项,但没有找到任何解决方案。我认为它可能与
这是我在入口处使用的注释:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/frontend-entry-points: http,https
traefik.ingress.kubernetes.io/protocol: http
ingress.kubernetes.io/ssl-redirect: 'true'
traefik.frontend.rule.type: PathPrefix
ingress.kubernetes.io/custom-request-headers: 'x-forwarded-proto:https||x-forwarded-ssl:on||x-forwarded-protocol:ssl'
我不确定 x-forwarded
headers 是由 traefik 自动设置的,所以我对它们进行了硬编码。
在 gunicorn 方面,我使用:
command:
- '/usr/local/bin/gunicorn'
args:
- '-b'
- '0.0.0.0:8080'
- '--log-level'
- 'debug'
- '--access-logfile'
- '-'
- '--error-logfile'
- '-'
- '--forwarded-allow-ips'
- '0.0.0.0'
- '--proxy-allow-from'
- '0.0.0.0'
- '--proxy-protocol'
- 'myapp'
同样的事情我一直在玩这些选项,但似乎没有任何改变。
为您的 header 尝试这个:
ingress.kubernetes.io/ssl-proxy-headers: "X-Forwarded-Proto: https"
ingress.kubernetes.io/ssl-redirect: "true"
(这是用于 aws elb 的配置。我不知道导致它的具体配置)
从那里开始,您可能会遇到不尊重 X-Forwarded-Proto header 的 gunicorn 问题,并希望查看他们的文档。