1

这是我第一次尝试部署一个 plotly dash python web 应用程序。我按照以下教程开始

该应用程序在 ec2 实例上运行良好,nginx 和 gunicorn 都在 docker 容器中。重定向到 okta 进行身份验证并返回工作正常(使用 ec2 实例公共 ip)

在通过 aws 负载均衡器 (HTTPS) 为域名设置重定向后,它开始失败并抱怨404,因为返回的 url 方案是http而不是https

首先,我添加OVERWRITE_REDIRECT_URI了带有https的配置,它修复了 okta 端不正确的重定向 uri 问题

然后尝试ProxyFix以下 SO 帖子中的所有选项,但在重定向到/authorization-code/callback?code=<long code value>后,响应总是以http:// <my_website_name>/<page>而不是https返回

  1. 让 Flask 的 url_for 在 AWS 负载均衡器中使用“https”方案,而不会弄乱 SSLify
  2. X-Forwarded-Proto 和 Flask

我被困在这一点上,我在这里错过了什么?

谢谢

nginx conf.d/conf

upstream app_server {
    server dash:8050;
}

server {
    listen 80;
    server_name _;

    location / {
        try_files $uri @proxy_to_app;
    }

    location @proxy_to_app {
        gzip_static on;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_buffering off;
        proxy_redirect off;
        proxy_pass http://app_server;
    }
}
4

0 回答 0