在反向代理後執行 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 https://: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-headersCLI 標誌告訴 Uvicorn 遵守這些頭:airflow api-server --proxy-headers如果您的代理伺服器與 Airflow 不在同一主機(或同一 docker 容器)上,那麼您將需要設定
FORWARDED_ALLOW_IPS環境變數,以便 Uvicorn 知道信任來自誰的此頭。請參閱 Uvicorn 文件。瞭解此處可以傳遞的完整選項。(請注意,Airflow 中不存在--forwarded-allow-ipsCLI 選項。)