You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS部署Superset在NLB终止HTTPS后登录等页面重定向卡住问题

问题根因分析

你遇到的login/welcome页面卡住的问题核心是HTTPS卸载后请求协议头传递异常,导致Superset生成的重定向地址、资源引用地址不符合预期,具体可能的原因如下:

  • X-Forwarded-Proto请求头未正确传递
    NLB完成HTTPS终止后,向后端Nginx Ingress转发的是明文HTTP请求,此时需要通过X-Forwarded-Proto头告知后端服务用户实际访问的协议是HTTPS。如果该头缺失或者值为http,Superset会默认生成http开头的重定向地址,要么被浏览器的混合内容策略拦截,要么跳转到无法访问的HTTP地址导致请求卡住。
  • Superset未开启代理头识别配置
    Superset基于Flask框架开发,默认不会信任X-Forwarded-*类的代理头,需要手动开启代理修复配置,才能正确识别前端传递的协议、域名等信息,否则依然会用本地收到的HTTP协议生成链接。
  • Nginx Ingress配置了不必要的SSL强制跳转
    如果你的Ingress规则开启了ssl-redirect: true(Nginx Ingress默认对HTTPS入口开启该配置),会强制将收到的HTTP请求跳转到HTTPS地址,而因为你在NLB层已经完成了TLS卸载,Ingress收到的所有请求都是HTTP,就会导致无限重定向循环,最终请求超时卡住。

解决步骤

  1. 调整Nginx Ingress配置
    在你的Superset对应的Ingress资源上添加如下注解:
annotations:
  nginx.ingress.kubernetes.io/ssl-redirect: "false" # 关闭Ingress层的强制HTTPS跳转,避免循环
  nginx.ingress.kubernetes.io/use-forwarded-headers: "true" # 启用X-Forwarded-*头传递

如果需要全局生效,可以在Nginx Ingress Controller的ConfigMap中添加上述配置。
2. 修改Superset配置
在superset_config.py中添加如下配置,开启代理头支持:

# 开启Flask代理头修复
ENABLE_PROXY_FIX = True
# 配置代理头的信任层数,根据你的链路层数调整,通常1即可
PROXY_FIX_CONFIG = {"x_for": 1, "x_proto": 1, "x_host": 1, "x_port": 1, "x_prefix": 1}
# 强制Superset生成HTTPS前缀的链接
PREFERRED_URL_SCHEME = 'https'

修改后重启Superset Pod生效。
3. 验证配置有效性
执行curl -v https://superset-xx.com/login查看响应头中的Location字段,如果返回的是https开头的地址则配置正常,如果依然是http开头可以再检查链路中头的传递情况。

内容的提问来源于stack exchange,提问作者CSUNNY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:48:02