2016-05-29 73 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

原來,我忘了,如果在生產模式中,應用程序日誌錯誤到另一個應用程序特定的日誌文件。

也許這可以提醒對未來人來檢查應用程序特定的日誌.. :-)