Cabeçalho http_host inválido

109

Estou tentando desenvolver um site usando o framework Django e lançado usando DigitalOcean.com e implantado os arquivos necessários no projeto django.

Tive que incluir arquivos estáticos no projeto Django e depois de coletar os arquivos estáticos, tentei atualizar meu ip

Estou incluindo os tutoriais que usei para criar o site. https://www.pythonprogramming.net/django-web-server-publish-tutorial/

Eu estou recebendo o seguinte erro :

DisallowedHost at / cabeçalho HTTP_HOST inválido: '198.211.99.20'. Pode ser necessário adicionar u'198.211.99.20 'a ALLOWED_HOSTS.

Alguém pode me ajudar a consertar isso? Este é meu primeiro site usando o framework Django.

Kathiravan Natarajan
fonte
Esse também pode ser o seu endereço IP flutuante no DigitalOcean.
Poopy McFartnoise,

Respostas:

183

O log de erros é direto. Como sugerido, você precisa adicionar 198.211.99.20 à sua ALLOWED_HOSTSconfiguração.

No arquivo settings.py do seu projeto, defina ALLOWED_HOSTSdesta forma:

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

Para mais leituras, leia aqui.

Prakhar Trivedi
fonte
Agora, obtendo o seguinte erro URL de solicitação: 198.211.99.20 Tipo de exceção: TemplateDoesNotExist Valor de exceção: personal / home.html Local da exceção: /usr/local/lib/python2.7/dist-packages/django/temp‌ late / loader.py em get_template, linha 25, tenho meus modelos na seguinte pasta / home / django / django_project / personal / templates / personal
Kathiravan Natarajan
@Kathir Existem muitos exemplos desse erro. Basta pesquisar no Google e, se o problema persistir, faça uma pergunta separada. Os comentários não são muito descritivos.
Prakhar Trivedi
Isso definitivamente funciona, mas é uma prática ruim, pois você deve sempre usar um arquivo .env
Abhishek Jebaraj
@AbhishekJebaraj você poderia explicar um pouco mais ou compartilhar um link com mais explicações?
Jesus Almaral - Hackaprende
1
@JesusAlmaral Um arquivo .env é um arquivo local que contém senhas e outras informações confidenciais. Se você colocar todas essas informações confidenciais dentro do seu próprio código, ele pode ser comprometido. Portanto, usamos este arquivo local .env e todos os armazenam com suas próprias senhas etc. localmente
Abhishek Jebaraj
0

settings.py

ALLOWED_HOSTS = ['*']
George Poliovei
fonte
2
Como pydanny disse "... não deixe assim depois de descobrir isso. A razão é que torna o Django potencialmente vulnerável a ataques de cabeçalho HTTP_HOST. E scripts automatizados vasculham a Internet para verificar se os sites têm essa vulnerabilidade." github.com/pydanny/cookiecutter-django/issues/…
javidazac
6
Lol, isso é para env de desenvolvimento. na produção só precisa definir DEBUG = False.
George Poliovei
4
Você não deseja usar '*' para produção. Isso ignora completamente o motivo e a segurança dos hosts permitidos.
Andy Poquette
@radtek - vá um diretório mais fundo, você está editando as configurações
erradas.py