Django Недопустимый заголовок HTTP_HOST: '<ip>'. Вам может потребоваться добавить '<ip>' в ALLOWED_HOSTS
<ip> показывает фактический ip-адрес, я просто не включил его в заголовок.
Я считаю, что этот ip-адрес является внутренним ip-адресом моего экземпляра EC2. Я использую AWS Elastic beanstalk для размещения.
Я вижу, что на этот вопрос уже много раз отвечали на SO, и ответ всегда заключается в том, чтобы добавить ip-адрес в ALLOWED_HOSTS, но в моем случае я установил ALLOWED_HOSTS=['*'] и все равно получаю ошибку.
Странно то, что я получаю ошибку только при попытке зайти на сайт с телефона. Когда я захожу через браузер на настольном компьютере, все работает нормально...
То, что я пробовал:
- I've double checked my elastic beanstalk deployment and the changes are definitely deployed.
Ок, возможно, это не будет ответом для других людей, но это было для меня... В моем случае, я делал http GET запрос с фронтенда и забыл лишнее "/" в конце url. Мой django urls.py определяет url с косой чертой в конце. Моим исправлением было добавить дополнительный "/" при выполнении http GET.
На моем рабочем столе это обрабатывалось автоматически, потому что django отвечал автоматическим перенаправлением (302), и мой настольный браузер переходил на url с / в конце, но мой телефон не делал перенаправление!
Это каким-то образом вызывало ошибку недопустимого заголовка HTTP_HOST.
Для большинства людей исправление ошибки, подобной этой, заключается в добавлении всех ваших доменов в список ALLOWED_HOSTS.
О, и если вы используете elasticbeanstalk, как я, не забудьте добавить доменное имя AWS. Оно должно выглядеть примерно так:
ALLOWED_HOSTS = ['<your-unique-id>.elasticbeanstalk.com',
'example.com', '<your-subdomain>.example.com']
DON'T do ALLOWED_HOSTS = ['*'] in prod!!!