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.


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í.


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 = ['*']

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.