Airflow 2025 峰會將於 10 月 07 日至 09 日舉行。立即註冊可享早鳥票!

在反向代理後執行 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-headers CLI 標誌告訴 Uvicorn 遵守這些頭:airflow api-server --proxy-headers

  • 如果您的代理伺服器與 Airflow 不在同一主機(或同一 docker 容器)上,那麼您將需要設定 FORWARDED_ALLOW_IPS 環境變數,以便 Uvicorn 知道信任來自誰的此頭。請參閱 Uvicorn 文件。瞭解此處可以傳遞的完整選項。(請注意,Airflow 中不存在 --forwarded-allow-ips CLI 選項。)

這篇條目有幫助嗎?