Я использую веб-сервер airflow (версия 1.10.10) на EC2 позади AWS ELB
Вот конфигурация слушателя ELB
Load Balancer Protocol : SSL Load Balancer
Port: 443 Instance
Protocol: TCP Instance
Port: 8080
Cipher omit here
SSL Certificate a cert here
перед ELB, я настроил route53 и установите fqdn на веб-сервер, скажем: ab c .fqdn
вся загрузка страниц работает, например https://abc.fqdn/admin/ или https://abc.fqdn/admin/airflow/tree?dag_id=tutorial
все отправленные веб-формы работают, как и Trigger DAG
однако после отправки формы страница перенаправляется на http, и страница не загружается из-за прослушивателя elb. Мне нужно вручную перейти на https, например https://admin/airflow/tree?dag_id=tutorial
вот что я сделал: я прочитал об этой статье: https://github.com/apache/incubator-superset/issues/978
затем на веб-сервере ec2 , я нашел этот файл /usr/local/lib/python3.7/site-packages/airflow/www/gunicorn_config.py
и этот пример конфигурации: https://gist.github.com/kodekracker/6bc6a3a35dcfbc36e2b7
Я добавил следующую конфигурацию, и мой файл конфигурации выглядит так, как показано ниже
import setproctitle
from airflow import settings
secure_scheme_headers = {
'X-FORWARDED-PROTOCOL': 'ssl',
'X-FORWARDED-PROTO': 'https',
'X-FORWARDED-SSL': 'on'
}
forwarded_allow_ips = "*"
proxy_protocol = True
proxy_allow_from = "*"
def post_worker_init(dummy_worker):
setproctitle.setproctitle(
settings.GUNICORN_WORKER_READY_PREFIX + setproctitle.getproctitle()
)
Однако новые конфигурации выше, похоже, не работают. Я что-то не так сделал? Как заставить веб-узел май переадресовывать на https после отправки формы?