2016-05-29 51 views
0

我有一个用Flask构建的网站,在Nginx后面gunicorn上运行。当我使用以下命令手动运行gunicorn为什么gunicorn log 500内部服务器错误不会出错?

gunicorn --worker-class eventlet -b 127.0.0.1:5000 app:app 

我期望所有输出,包括错误,都记录到终端。但是,当我访问产生在浏览器500响应的一个特定的页面,在我的nginx_access.log一行这样说:

83.161.xx.xx - - [29/May/2016:15:33:12 +0000] "GET /invites HTTP/1.1" 500 291 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36" 

,但我没有得到任何来自运行gunicorn实例输出本500。这使得它几乎不可能调试错误。

所以,我试图运行gunicorn与supervisord中,我已经得到了gunicorn定义如下:

[program:gunicorn] 
command=/home/immoprod/thesite/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 app:app 
directory=/home/immoprod/thesite 
autostart=true 
autorestart=true 
stdout_logfile=/home/immoprod/logs/gunicorn_access.log 
stderr_logfile=/home/immoprod/logs/gunicorn_error.log 
stopsignal=QUIT 

奇怪的是,我有一个测试服务器使用相同的设置,其中gunicorn会正确记录错误。据我所知,两套装置之间没有什么不同(当然必须有,但我不知道是什么)。

有没有人知道为什么从500内部服务器错误输出的错误没有记录到Gunicorn的stderr?欢迎所有提示!

如果它的事项:我使用gunicorn版本18.0

+0

什么是nginx的的error.log中? –

回答

0

原来,我忘了,如果在生产模式中,应用程序日志错误到另一个应用程序特定的日志文件。

也许这可以提醒对未来人来检查应用程序特定的日志.. :-)