Проверка работоспособности URL Django и Elastic Beanstalk
У меня есть веб-приложение Django. Он работает внутри Docker на Elastic Beanstalk.
Я хотел бы указатьURL проверки работоспособности для чуть более продвинутой проверки работоспособности, чем «может ли ELB установить TCP-соединение».
Вполне разумно, ELB делает это, подключаясь к экземпляру по HTTP, используя имя хоста экземпляра (например,ec2-127-0-0-1.compute-1.amazonaws.com
) какHost
заголовок.
Джанго имеетALLOWED_HOSTS
который подтверждаетHost
заголовок входящих запросов. Я установил это для внешнего домена моего приложения через переменную окружения.
Неудивительно, что Django отклоняет проверки работоспособности URL ELB из-за отсутствия соответствия.Host
.
Мы не хотим отключатьALLOWED_HOSTS
потому что мы хотели бы иметь возможность доверятьget_host()
.
Решения до сих пор кажутся:
Каким-то образом убедить Джанго не заботиться оALLOWED_HOSTS
для определенных конкретных путей (то есть URL проверки работоспособности)Сделайте что-нибудь наподобие вызова API информации EC2 при запуске, чтобы получить полное доменное имя хоста и добавить его кALLOWED_HOSTS
Ничто из этого не кажется особенно приятным. Кто-нибудь может порекомендовать лучшее / существующее решение?
(Во избежание сомнений, я считаю, что эта проблема идентична сценарию «Отключено»ALLOWED_HOSTS
, выходящий HTTPD, который фильтрует на хосте "- я хочу, чтобы проверка работоспособности поразилаДжангоне лобовое HTTPD)