URL с поддержкой CORS не работают для AWS Healthcheck

У меня есть приложение Elastic Beanstalk для размещения моих конечных точек Django Rest Framework.

Я включил Corsheader для защиты от подделки перекрестного запроса. Теперь проблема в том, что при проверке работоспособности на ELB он отправляет запрос на URL-адрес работоспособности по адресу:80/api/health/, но этот URL выдает 400 неверных запросов, поскольку URL через любой домен, за исключением одного, указанного в allow_host, не разрешен.

Я попытался вставить в значение allow_host как ["172.", "192.", "10.", ".mydomina.com"]

Но это не похоже на работу.

1 ответ

Я поднял это как билет с поддержкой AWS и нашел решение как https://dryan.com/articles/elb-django-allowed-hosts/

Внесите изменения в вашу производственную конфигурацию как

# Add Private IP of the ELB Instance to Allowed Host for the Health check not to throw CORS 400 Bad Request
EC2_PRIVATE_IP = None
try:
  EC2_PRIVATE_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4', timeout=0.01).text
except requests.exceptions.RequestException:
  pass

if EC2_PRIVATE_IP:
  ALLOWED_HOSTS.append(EC2_PRIVATE_IP)

  print("Allowed Host List:")
  print(ALLOWED_HOSTS)
Другие вопросы по тегам