O IP do aplicativo do Django funciona, mas o 'erro de 400 erros de solicitação' quando uma atualização de registro

1

Eu tenho um aplicativo Django implantado em uma instância do Ubuntu 16.04 EC2 usando nginx e gunicorn.

Infelizmente, após uma implantação bem-sucedida com meu IP público, a atualização do meu registro A com o IP público gerou um erro 404 Bad Request em meu domínio, mesmo depois de esperar muito tempo para garantir a propagação das alterações do DNS. Acessar o aplicativo pelo IP público continua funcionando. Eu entrei em contato com meu host do servidor de nomes, para confirmar se defini corretamente minhas configurações de registro A: eles disseram que a alteração no DNS pareceu bem-sucedida, mas não pôde ajudar, pois parecia que era um problema do lado da AWS.

Existe uma razão específica pela qual utilizar meu IP público no meu registro A não está funcionando corretamente e não está apontando para o meu aplicativo?

Obrigado por qualquer pessoa que possa me ajudar a conseguir que meu domínio aponte com sucesso para o meu projeto django implantado. No momento, o acesso ao aplicativo através do IP público ainda funciona bem, o registro A parece estar atualizado, mas qualquer tentativa de carregar o domínio (não o IP direto) renderiza um erro 400 Bad Request.

    
por twknab 18.10.2017 / 02:47

2 respostas

1

Eu descobri uma resolução. Parece que usar o IP público é aceitável, mas não adicionei meu nome de domínio ao arquivo ALLOWED_HOSTS e à configuração nginx.

Ao fazer o seguinte, consegui que meu domínio apontasse com sucesso para a implantação do AWS EC2:

Eu fiz três coisas:

  • Primeiro, atualizei meu ALLOWED_HOSTS :
    • ALLOWED_HOSTS = ['12.345.67.890', 'sub.domain.com', 'www.sub.domain.com']
  • Depois, também editei a configuração do server_name na configuração do nginx:
    • server_name 12.345.67.890 sub.domain.com www.sub.domain.com;
  • Por fim, reiniciei o nginx e reiniciei a máquina para ter certeza de que tudo funcionou:
    • sudo service nginx restart
    • sudo reboot

Depois disso, minha página foi carregada com sucesso.

    
por 18.10.2017 / 04:25
0

Eu tive o mesmo problema e resolvi configurando uma classe de trabalho em Gunicorn. Também tive alguns problemas ao usar o gevent no python 3.7, é melhor usar o 3.6.

Django, exemplo do Python 3.6:

Instalar:

pip install gevent

Executar:

gunicorn --chdir myApp myApp.wsgi --workers 2 --worker-class=gevent --bind 0.0.0.0:80 --timeout=90 --graceful-timeout=10
    
por 10.08.2018 / 18:44