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

如何通过uWSGI和Nginx部署Apache Airflow且无需修改Nginx配置

部署配置步骤

1. 替换airflow/wsgi.py内容

直接替换原有wsgi.py的代码为以下内容,实现调用Airflow的Flask应用同时适配SSL反向代理场景:

from airflow.www.app import create_app
from werkzeug.middleware.proxy_fix import ProxyFix

# 初始化Airflow Web服务应用
application = create_app()

# 修复反向代理请求头,适配SSL卸载场景
# 参数说明:x_proto=1表示信任代理传递的X-Forwarded-Proto头,识别HTTPS请求
application.wsgi_app = ProxyFix(
    application.wsgi_app,
    x_for=1,
    x_proto=1,
    x_host=1,
    x_port=1
)

注意:需确保虚拟环境中已安装对应版本的Airflow及依赖,否则导入会报错。

2. 修改airflow/airflow.cfg配置

调整以下核心参数适配反向代理场景:

  • base_url:填写对外暴露的完整访问地址,示例:https://your-domain.com(如果是子路径部署则填写https://your-domain.com/airflow)
  • enable_proxy_fix:设置为True,开启Airflow自带的代理适配能力
  • cookie_secure:设置为True,保证Cookie仅在HTTPS下传输,适配SSL场景
  • web_server_ssl_enabled:设置为False,SSL卸载由前端Nginx处理,uWSGI侧无需处理SSL
  • 如果是子路径部署,额外新增/修改web_server_root_path参数为你的子路径,示例:/airflow

3. uwsgi.ini配置优化(可选)

原有配置可正常运行,建议新增以下参数避免大请求被截断:

buffer-size = 32768

前提是前端Nginx已经配置了将对应域名/路径的请求转发到你uWSGI监听的127.0.0.1:9999端口,无需修改Nginx的Airflow专属配置,只要基础转发规则正确即可。

Worker与Scheduler适配说明

上述所有配置仅适用于Airflow Webserver组件,Worker和Scheduler是独立运行的服务进程,不需要通过uWSGI部署,和通用生产环境启动逻辑一致:

  • Worker:根据你使用的Executor类型执行对应启动命令即可,比如CeleryExecutor使用airflow celery worker
  • Scheduler:直接执行airflow scheduler命令启动
  • 两类进程仅需要保证airflow.cfg中的公共配置(如元数据库连接、Executor类型、消息队列配置等)和Webserver侧一致即可,无需修改WSGI、uWSGI相关配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:57:04