Encabezado http_host no válido

109

Estoy tratando de desarrollar un sitio web usando el marco Django y lo lancé usando DigitalOcean.com e implementé los archivos necesarios en django-project.

Tuve que incluir archivos estáticos en Django-project y después de recopilar archivos estáticos, intenté actualizar mi ip

Incluyo los tutoriales que he utilizado para crear el sitio web. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Estoy teniendo el siguiente error :

DisallowedHost en / encabezado HTTP_HOST no válido: '198.211.99.20'. Es posible que deba agregar u'198.211.99.20 'a ALLOWED_HOSTS.

¿Alguien puede ayudarme a arreglar esto? Este es mi primer sitio web que usa el marco de Django.

Kathiravan Natarajan
fuente
Esa también puede ser su dirección IP flotante en DigitalOcean.
Poopy McFartnoise

Respuestas:

184

El registro de errores es sencillo. Como sugirió, debe agregar 198.211.99.20 a su ALLOWED_HOSTSconfiguración.

En el archivo settings.py de su proyecto, configúrelo ALLOWED_HOSTSasí:

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

Para leer más, lea desde aquí.

Prakhar Trivedi
fuente
Ahora aparece el siguiente error URL de solicitud: 198.211.99.20 Tipo de excepción: TemplateDoesNotExist Valor de excepción: personal / home.html Ubicación de la excepción: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py en get_template, línea 25 Tengo mis plantillas en la siguiente carpeta / home / django / django_project / personal / templates / personal
Kathiravan Natarajan
@Kathir Hay muchos ejemplos de ese error. Solo búscalo en Google y si el problema persiste, hazlo como una pregunta separada, los comentarios no son muy descriptivos.
Prakhar Trivedi
Esto definitivamente funciona, pero es una mala práctica, ya que siempre debe usar un archivo .env
Abhishek Jebaraj
@AbhishekJebaraj, ¿podrías explicar un poco más o compartir un enlace con más explicaciones?
Jesús Almaral - Hackaprende
1
@JesusAlmaral Un archivo .env es un archivo local que contiene contraseñas y otra información confidencial. Si pones toda esta información confidencial dentro de tu propio código, podría verse comprometida. Por lo tanto, usamos este archivo local .env y todos almacenan con sus propias contraseñas, etc. localmente
Abhishek Jebaraj
0

settings.py

ALLOWED_HOSTS = ['*']
George Poliovei
fuente
2
Como dijo pydanny "... no lo dejes como tal una vez que hayas resuelto esto. La razón es que hace que Django sea potencialmente vulnerable a los ataques de encabezado HTTP_HOST. Y los scripts automatizados recorren Internet para verificar si los sitios tienen esta vulnerabilidad". github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, eso es para env de desarrollo. en producción solo es necesario establecer DEBUG = False.
George Poliovei
4
No desea utilizar '*' para la producción. Esto pasa por alto por completo el motivo y la seguridad de los hosts permitidos.
Andy Poquette
@radtek - profundice un directorio, está editando la configuración incorrecta.py
birdmw