Django Неверный заголовок HTTP_HOST Эластичный бобовый стебель - PullRequest
1 голос
/ 11 мая 2019

Я управляю большим сайтом хобби на AWS ELB. Я пытался решить эту проблему с помощью поиска StackOverflow, но ничего не работает. Я обновил мои settings.py и ALLOWED_HOSTS следующим образом:

ALLOWED_HOSTS = ['127.0.0.1','.amazonaws.com','mysite.com','.elasticbeanstalk.com','localhost',]

import requests
EC2_PRIVATE_IP = None
try:
  EC2_PRIVATE_IP = requests.get("http://169.254.169.254/latest/meta-data/local-ipv4", timeout = 0.50).text
except requests.exceptions.RequestException:
  pass

if EC2_PRIVATE_IP:
  ALLOWED_HOSTS.append(EC2_PRIVATE_IP)

Проверка работоспособности ELB работает.

Тем не менее, я по-прежнему получаю тысячи сообщений об ошибках ежедневно. Например:

Неверный заголовок HTTP_HOST: '54 .84.163.167 '. Возможно, вам потребуется добавить '54 .84.163.167 'в ALLOWED_HOSTS.

Отчет на / Неверный заголовок HTTP_HOST: «54 .84.163.167». Возможно, вам потребуется добавить '54 .84.163.167 'в ALLOWED_HOSTS.

Архитектура моего сайта - Cloudfront, ELB, Django. Из того, что я могу сказать, показанный IP-адрес (и он регулярно меняется) является частью сети Amazons. Я подозреваю, что это сам балансировщик нагрузки, но я не знаю, как это подтвердить и определить IP-адрес балансировщика нагрузки для добавления к разрешенным хостам.

Есть еще мысли или идеи?

1 Ответ

0 голосов
/ 11 мая 2019

Похоже, что это IP-адрес AWS, возможно, от EC2 или ELB.dig -x 54.84.163.167 + short ec2-54-84-163-167.compute-1.amazonaws.com.

Это не IP-адрес краевого краевого фронта, поскольку он не указан здесь: http://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips (CLOUDFRONT_REGIONAL_EDGE_IP_LIST)

Дополнительно выполняется проверка работоспособности от ELB до Ec2 с частного IP-адреса ELB ENI, я не уверен, какой ресурс AWS владеет этим, но, похоже, он делает запрос непосредственно на ELB в обход CloudFront.

...