HTTPS请求重定向到HTTP

问题描述 投票:0回答:1

我在一个traefik ingress后面运行Gunicorn。 traefik将HTTP重定向到HTTPS,但出于某种原因,gunicorn回复了指向HTTP的301。我已经尝试了很多我所知道的选项并且没有找到任何解决方案。我认为它可能与像https://stackoverflow.com/a/41488430/3719845这样的东西有关。

以下是我在Ingress上使用的注释:

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标题是由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'

同样的事情,我一直在玩这些选项,但似乎没有任何改变。

kubernetes gunicorn traefik traefik-ingress
1个回答
2
投票

试试这个标题:

ingress.kubernetes.io/ssl-proxy-headers: "X-Forwarded-Proto: https"
ingress.kubernetes.io/ssl-redirect: "true"

(这是用于aws elb的配置。我不知道你的特定配置导致它)

从那里开始,你可能会有一个不遵守X-Forwarded-Proto标题的枪支问题,并希望查看他们的文档。

© www.soinside.com 2019 - 2024. All rights reserved.