Nieprawidłowy nagłówek http_host


109

Próbuję stworzyć stronę internetową przy użyciu frameworka Django i uruchomić za pomocą DigitalOcean.com i wdrożyć niezbędne pliki w django-project.

Musiałem dołączyć pliki statyczne do projektu Django i po zebraniu plików statycznych próbowałem odświeżyć moje IP

Dołączam tutoriale, których użyłem do stworzenia strony internetowej. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Otrzymuję następujący błąd:

DisallowedHost at / Invalid HTTP_HOST header: „198.211.99.20”. Może być konieczne dodanie adresu u'198.211.99.20 'do ALLOWED_HOSTS.

Czy ktoś może mi pomóc to naprawić? To moja pierwsza strona internetowa wykorzystująca framework Django.


Może to być również Twój ruchomy adres IP w DigitalOcean.
Poopy McFartnoise

Odpowiedzi:


187

Dziennik błędów jest prosty. Jak zasugerowano, musisz dodać 198.211.99.20 do swoich ALLOWED_HOSTSustawień.

W pliku settings.py projektu ustaw w ALLOWED_HOSTSten sposób:

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

Więcej informacji znajdziesz tutaj.


Teraz pojawia się następujący błąd URL żądania: 198.211.99.20 Typ wyjątku: TemplateDoesNotExist Wartość wyjątku: personal / home.html Lokalizacja wyjątku: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py w get_template, wiersz 25 Mam swoje szablony w następującym folderze / home / django / django_project / personal / templates / personal
Kathiravan Natarajan

@Kathir Jest wiele przykładów tego błędu, po prostu wyszukaj go w Google i jeśli problem nadal występuje, zadaj go jako osobne pytanie, komentarze nie są zbyt opisowe.
Prakhar Trivedi

To na pewno działa, ale jest zła praktyka, jak zawsze należy użyć pliku .env
Abhishek Jebaraj

@AbhishekJebaraj czy mógłbyś wyjaśnić trochę więcej lub udostępnić link z dokładniejszym wyjaśnieniem?
Jesus Almaral - Hackaprende

1
@JesusAlmaral Plik .env to lokalny plik zawierający hasła i inne poufne informacje. Jeśli umieścisz wszystkie te poufne informacje w samym kodzie, może to zostać naruszone. Dlatego używamy tego lokalnego pliku .env i każdy przechowuje lokalnie z własnymi hasłami itp.
Abhishek Jebaraj

0

settings.py

ALLOWED_HOSTS = ['*']

2
Jak powiedział pydanny "... nie zostawiaj tego tak, jak już to zrozumiesz. Powodem jest to, że Django jest potencjalnie podatne na ataki nagłówka HTTP_HOST. A automatyczne skrypty przeszukują internet, aby sprawdzić, czy strony mają tę lukę." github.com/pydanny/cookiecutter-django/issues/…
javidazac

6
Lol, czyli dla środowiska deweloperskiego. w produkcji wystarczy ustawić DEBUG = False.
George Poliovei

4
Nie chcesz używać znaku „*” do produkcji. To całkowicie omija przyczynę i bezpieczeństwo dozwolonych hostów.
Andy Poquette
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.