在反向代理后运行 Airflow¶
Airflow 可以设置在反向代理后运行,并且能够非常灵活地设置其端点。
例如,您可以配置您的反向代理以实现
https://lab.mycompany.com/myorg/airflow/
为此,您需要在您的 airflow.cfg
中设置以下内容
base_url = http://my_host/myorg/airflow
配置您的反向代理(例如 nginx)以将 url 和 http 头原样传递给 Airflow webserver,不进行任何重写,例如
server { listen 80; server_name lab.mycompany.com; location /myorg/airflow/ { proxy_pass http://localhost:8080; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_redirect off; proxy_http_version 1.1; } }
使用
--proxy-headers
CLI 标志告诉 Uvicorn 遵守这些头:airflow api-server --proxy-headers
如果您的代理服务器与 Airflow 不在同一主机(或同一 docker 容器)上,那么您将需要设置
FORWARDED_ALLOW_IPS
环境变量,以便 Uvicorn 知道信任来自谁的此头。请参阅 Uvicorn 文档。了解此处可以传递的完整选项。(请注意,Airflow 中不存在--forwarded-allow-ips
CLI 选项。)