Does this mean that its somehow django fault cause it looks like django returned 0 bytes?
Sim, não há problema de nginx aqui, o problema é que o Django não retorna nada em vez de uma página de 500 erros.
Eu tenho um problema com a minha configuração atual ... E o problema é que se eu definir DEBUG = False no arquivo settings.py do django, o nginx deixa de mostrar tracebacks do django em 500 erros, mas também não mostra nossa página 500. Ele apenas exibe o erro de gateway incorreto do nginx 502.
Eu recebo o erro de e-mail com traceback, assim como configurei-o para enviar-me tracebacks, quando eles ocorrem. Mas eu quero mostrar boa página 500 para os usuários não erro de gateway nginx 502 ...
Honestamente, eu nem sei por onde começar a procurar a raiz do problema. Estou preparado para postar todos os arquivos de configuração necessários, se algum especialista em nginx vier e me disser o que ele quer ver.
alan
Editar1: procurei o arquivo de log exibido em um desses 500 erros e ele mostra isso:
[pid: 16203|app: 0|req: 1/1] my.ip.address () {46 vars in 915 bytes} [Thu Sep 12 10:01:17 2013] GET /settings/personal/ => generated 0 bytes in 1249 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)
Isso significa que sua falha de alguma forma django faz parecer que o django retornou 0 bytes?
Use a diretiva error_page do nginx documentada aqui
Com isso, o Nginx irá interceptar o erro 5XX do backend e mostrar qualquer página que você goste para o usuário final.
Recentemente tive o mesmo problema. O que eu fiz para consertar isso foi adicionar aos parâmetros de inicialização do uwsgi estes: –Catch-exceptions e –error-route-status = ”500 arquivo: nome do arquivo = / usr / local / nginx / html / index.html, status = 500 Erro interno do servidor”
Um deles era capturar exceções do django, mesmo se DEBUG = false. e o outro para redirecionar uma requisição para um arquivo em particular, de modo que o cliente evite ver uma página cheia de exceções do django e, ao invés disso, veja a mensagem “we are sorry blah blah”. Tenha em mente que a versão do uwsgi que estou usando é a 1.9.15.