Eu montei um servidor de integração para nosso aplicativo desenvolvido pelo Django. Alguns dos recursos ainda são experimentais e resultam em solicitações excessivamente longas.
Por enquanto, estou bem com o fraco desempenho, mas preciso ser capaz de integrar. Sempre que usamos o recurso que leva a uma solicitação longa, o aplicativo trava (conforme o esperado) e, depois de um minuto e meio, retorna um '502 - Bad Gateway'. O resto do aplicativo funciona bem.
Eu verifiquei o registro do gunicorn e, sempre que isso acontece, recebo uma linha como
2012-01-20 17:30:13 [23128] [DEBUG] GET /results/
2012-01-20 17:30:43 [23125] [ERROR] WORKER TIMEOUT (pid:23128)
Traceback (most recent call last):
File "/home/demo/python_envs/frontend/lib/python2.6/site-packages/gunicorn/app/base.py", line 111, in run
os.setpgrp()
OSError: [Errno 1] Operation not permitted
no entanto, isso acontece muito antes do tempo limite do trabalhador real, que eu configurei para 10 minutos apenas para garantir. Aqui está parte do script inicial que roda gunicorn.
description "..."
start on runlevel [2345]
stop on runlevel [!2345]
#Send KILL after 5 seconds
kill timeout 5
respawn
env VENV="/path/to/a/virtual/env/"
#how to know the pid
pid file $VENV/run/guniconr-8080.pid
script
exec sudo -u demo $VENV/bin/gunicorn_django --preload --daemon -w 4 -t 600 --log-level debug --log-file $VENV/run/gunicorn-8080.log -p $VENV/run/gunicorn-8080.pid -b localhost:8080 /path/to/settings.py
end script
Estou executando a versão 0.13.4 do gunicorn. Qualquer ajuda seria muito apreciada.
-t
opção que eu já tinha na pergunta?Talvez este seja um problema com sua configuração do nginx. Você configurou o valor proxy_read_timeout?
Fonte: http://wiki.nginx.org/HttpProxyModule#proxy_read_timeout
fonte