在反向代理後方執行 Airflow¶
Airflow 可以設定在反向代理後方,並能非常彈性地設定其端點。
例如,您可以設定您的反向代理以取得
https://lab.mycompany.com/myorg/airflow/
若要執行此操作,您需要在您的 airflow.cfg
中設定以下設定
base_url = http://my_host/myorg/airflow
此外,如果您使用 Celery Executor,並且啟用 flower,您可以使用以下方式在 /myorg/flower
中取得 Flower
flower_url_prefix = /myorg/flower
您的反向代理 (例如:nginx) 應設定如下
將 URL 和 HTTP 標頭原封不動地傳遞給 Airflow webserver,無需任何重寫,例如
server { listen 80; server_name lab.mycompany.com; location /myorg/airflow/ { proxy_pass https://127.0.0.1:8080; proxy_set_header Host $http_host; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /myorg/flower/ { proxy_pass https://127.0.0.1:5555; proxy_set_header Host $http_host; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
為了確保 Airflow 在 TLS 終止代理後方執行時產生具有正確 scheme 的 URL,您應該設定代理以設定 X-Forwarded-Proto
標頭,並在您的 airflow.cfg
中啟用 ProxyFix
中介軟體
[webserver]
enable_proxy_fix = True
如果您需要設定 ProxyFix
中介軟體的個別參數,您可以個別在您的 airflow.cfg
中設定它們
[webserver]
proxy_fix_x_for = 1
proxy_fix_x_host = 3
注意
您應該僅在受信任的代理 (AWS ELB、nginx 等) 後方執行 Airflow 時才啟用 ProxyFix
中介軟體。