Неверный заголовок http_host

109

Я пытаюсь разработать веб-сайт с использованием фреймворка Django и запустить его с помощью DigitalOcean.com и развернуть необходимые файлы в django-project.

Мне пришлось включить статические файлы в Django-проект, и после сбора статических файлов я попытался обновить свой ip.

Я включаю учебные пособия, которые использовал для создания веб-сайта. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Я получаю следующую ошибку:

DisallowedHost at / Invalid HTTP_HOST header: '198.211.99.20'. Возможно, вам потребуется добавить u'198.211.99.20 'в ALLOWED_HOSTS.

Может кто-нибудь помочь мне это исправить? Это мой первый сайт, использующий фреймворк Django.

Катираван Натараджан
источник
Это также может быть ваш плавающий IP-адрес в DigitalOcean.
Poopy McFartnoise

Ответы:

187

Журнал ошибок прост. Как было предложено, вам нужно добавить 198.211.99.20 к вашей ALLOWED_HOSTSнастройке.

В файле settings.py вашего проекта задайте ALLOWED_HOSTSтак:

ALLOWED_HOSTS = ['198.211.99.20', 'localhost', '127.0.0.1']

Для дальнейшего чтения читайте здесь.

Пракхар Триведи
источник
Теперь появляется следующая ошибка URL-адрес запроса: 198.211.99.20 Тип исключения: TemplateDoesNotExist Значение исключения: personal / home.html Местоположение исключения: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py в get_template, строка 25 Мои шаблоны находятся в следующей папке / home / django / django_project / personal / templates / personal
Катираван Натараджан
@Kathir Есть много примеров этой ошибки. Просто погуглите, и если проблема не исчезнет, ​​задайте ее как отдельный вопрос, комментарии не очень информативны.
Пракхар Триведи
Это определенно работает, но это плохая практика, так как вы всегда должны использовать файл .env
Абхишек Джебарадж,
@AbhishekJebaraj, не могли бы вы объяснить немного больше или поделиться ссылкой с дополнительными объяснениями?
Хесус Альмарал - Hackaprende
1
@JesusAlmaral Файл .env - это локальный файл, содержащий пароли и другую конфиденциальную информацию. Если вы поместите всю эту конфиденциальную информацию внутри самого кода, она может быть взломана. Таким образом, мы используем этот локальный файл .env, и каждый хранит свои пароли и т. Д. Локально
Абхишек Джебарадж
0

settings.py

ALLOWED_HOSTS = ['*']
Джордж Полиовей
источник
2
Как сказал Pydanny, «... не оставляйте это как таковое, как только вы это выясните. Причина в том, что делает Django потенциально уязвимым для атак на заголовок HTTP_HOST. А автоматические скрипты просматривают Интернет, чтобы проверить, есть ли на сайтах эта уязвимость». github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, то есть для разработки env. в производстве нужно только установить DEBUG = False.
Джордж Полиовей
4
Вы не хотите использовать "*" для производства. Это полностью игнорирует причину и безопасность разрешенных хостов.
Энди Покетт 08