我在 EC2 上配置了一个 Airflow Web 服务器,它在端口 8080 上监听。
我在 EC2 前面有一个 AWS ALB(应用程序负载均衡器),监听 https 80(面向互联网),实例目标端口面向 http 8080。
我无法从浏览器浏览 https://< Airflow 链接 >,因为 Airflow Web 服务器将我重定向到 http ://< Airflow 链接 >/admin,ALB 不监听该链接。
如果我从浏览器浏览 https://< Airflow 链接 >/admin/airflow/login?next=%2Fadmin%2F,那么我会看到登录页面,因为此链接不会重定向我。
我的问题是如何更改 Airflow ,以便在浏览 https://< Airflow 链接> 时, Airflow 网络服务器会将我重定向到 https:...,而不是 http://.....
以便 AWS ALB 可以处理请求。
我试图从 http://localhost:8080 更改airflow.cfg 的base_url至 https://localhost:8080 ,根据下面的答案,但我看不出我的变化有什么不同....
无论如何,如何从 ALB 访问 https://
最佳答案
由于他们使用 Gunicorn - 您可以将 forwarded_allow_ips 值配置为环境变量,而不必使用像 Nginx 这样的中间代理。
就我而言,我只是设置了 FORWARDED_ALLOW_IPS = *
它工作得很好。
在 ECS 中,如果您对所有 Airflow 任务(网络服务器、调度程序、工作程序等)使用一个 docker 镜像,则可以在网络服务器任务配置中设置此项。
关于apache - 无法通过 AWS 负载均衡器 HTTPS 访问 Airflow Web 服务器,因为 Airflow 将我重定向到 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413093/