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

Airflow 3.0.0 Docker Compose UI外网IP端口无限刷新,本地正常求助

Apache Airflow 3.0.0 外网访问登录循环问题解决

问题描述

在Ubuntu 22.04服务器上通过官方Docker Compose文件搭建Apache Airflow 3.0.0,所有容器状态健康,本地访问http://localhost:8080可正常登录、操作DAG;但通过公网IPhttp://22.193.38.155:8080访问时,UI登录后持续刷新,airflow-apiserver日志重复出现以下循环条目:

  • airflow-apiserver-1 | INFO: 22.193.38.155:xxxxx - "GET /ui/config HTTP/1.1" 401 Unauthorized
  • airflow-apiserver-1 | INFO: 22.193.38.155:xxxxx - "GET /api/v2/auth/login?... HTTP/1.1" 307 Temporary Redirect
  • airflow-apiserver-1 | INFO: 22.193.38.155:xxxxx - "GET /auth/login/?next=... HTTP/1.1" 302 Found

原因分析

  1. 会话Cookie域名不匹配:Airflow默认将会话Cookie绑定到localhost,使用公网IP访问时,浏览器无法识别并携带该Cookie,导致每次请求都触发重新授权,形成循环。
  2. API信任源未配置:Airflow 3.0.0的API服务器需要明确允许外部访问源,否则会拒绝跨域/非信任源的请求,引发重定向循环。
  3. UI配置接口权限限制:/ui/config接口返回401,说明未开启UI配置暴露权限,导致页面加载时无法获取必要配置,触发重试逻辑。

解决方案

修改Docker Compose文件中的环境变量,添加以下配置项:

1. 调整会话Cookie相关配置

在x-airflow-common的environment区块中添加:

AIRFLOW__WEBSERVER__SESSION_COOKIE_DOMAIN: "22.193.38.155"
AIRFLOW__WEBSERVER__SESSION_COOKIE_SECURE: "false"  # HTTP访问设为false,HTTPS访问改为true
AIRFLOW__WEBSERVER__SESSION_COOKIE_SAMESITE: "Lax"

2. 配置API信任源

同样在x-airflow-common的environment区块中添加:

AIRFLOW__API__ACCESS_CONTROL_ALLOW_ORIGIN: "http://22.193.38.155:8080"
AIRFLOW__API__ACCESS_CONTROL_ALLOW_CREDENTIALS: "true"

3. 开启UI配置暴露

添加以下配置确保/ui/config接口可正常访问:

AIRFLOW__WEBSERVER__EXPOSE_CONFIG: "true"

4. 重启容器

修改完成后,执行以下命令重启所有Airflow容器:

docker compose down
docker compose up -d

补充说明

如果后续改用域名访问,只需将SESSION_COOKIE_DOMAIN和ACCESS_CONTROL_ALLOW_ORIGIN中的公网IP替换为对应域名即可;若启用HTTPS,需将SESSION_COOKIE_SECURE设为true。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:54:49