nginx erro de servidor interno uwsgi 500 - cabeçalho do http uwsgi: “Conexão: fechar”

3

Estou usando um pequeno servidor com nginx e um aplicativo flask em aws e uwsgi . Já aconteceu duas vezes que o servidor caiu com erro 500 e não há logs em nome do nginx. Eu não sou especialista, você poderia por favor me ajudar a entender por que o seguinte aconteceu?

parece que o servidor "aleatoriamente" (?) para com este erro: (Eu ativei debug em error_log /pathtomylog/error.log debug no arquivo nginx.conf para poder ver):

2015/12/02 22:05:12 [debug] 19006#0: *1 http upstream process header
2015/12/02 22:05:12 [debug] 19006#0: *1 malloc: 0000000001D24CE0:4096
2015/12/02 22:05:12 [debug] 19006#0: *1 recv: fd:11 104 of 4096
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi status 500 "500 Internal Serv
er Error"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header: "Connection: close"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header: "Content-Type: text/p
lain"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header done
2015/12/02 22:05:12 [debug] 19006#0: *1 xslt filter header
2015/12/02 22:05:12 [debug] 19006#0: *1 HTTP/1.1 500 Internal Server Error

Eu tentei matar todos os trabalhadores do uswgi. Eu tentei reiniciar o nginx. A memória RAM parece ainda ok, e desativada troca por causa de ElasticSearch (sim, eu estou usando em 1GB de memória RAM, mas para o tamanho do meu índice não reclamou ainda).

Você poderia também indicar uma referência sobre como configurar um alarme ou algo assim? Como o erro aconteceu duas vezes sem ter sido modificado por arquivos conf nem pelo aplicativo, arquivos estáticos foram atendidos ok, o ponto final da API não, achei que estivesse relacionado ao uswgi, mas não consegui descobrir.

Eu não sou um especialista em configuração de servidores e é realmente um mundo cheio de detalhes técnicos! Por favor, ajudem a se distrair na selva:)

    
por user305883 02.12.2015 / 23:21

1 resposta

2

[RESOLVIDO] o uswgi não conseguiu resolver o módulo python.

Eu fiz o seguinte e encontrei o erro, pode ser útil para alguém depurar.

Verifiquei o log do uswgi: se você não tiver, configure-o no arquivo .ini, no qual o uwsgi será informado para iniciar seu aplicativo:

logto = /var/log/uwsgi/%n.log

(refiro-me a este tutorial caso você seja novo: link )

Em seguida, localize seu arquivo de log na pasta acima e:

tail -f myapp.log

Descobri que o aplicativo python não foi encontrado. Depois de coçar a cabeça um pouco, eu encontrei o erro não estava no cabeçalho, mas simplesmente porque eu tinha chamado um módulo de backup do meu aplicativo como notação [name.version.py] ( coisa prima não fazer na nomeação de módulos python .. uups eu fiz isso.

Por isso, não sabíamos qual módulo começar.

Como exemplo, renomeou backup como: mv oldname.version.py newname_version.py

e funciona novamente.

No entanto, como fiz o upload dos arquivos de backup para os servidores enquanto o aplicativo estava funcionando corretamente e continuei trabalhando até dois dias atrás, entendo que o servidor foi desativado e reiniciado, não sendo possível determinar quais módulos: monitorar uma reinicialização do servidor? isso é normal? Como você entende, eu quero configurar decentemente, apesar das configurações do servidor não é da minha conta e comentários para um entendimento mais claro sobre como evitar ou lidar com erro 500 (configuração de alarmes) são muito apreciados!

    
por user305883 03.12.2015 / 13:37