2016-05-29 10 views
0

У меня есть сайт, построенный с Flask и работающий на gunicorn позади Nginx. При запуске gunicorn вручную с помощью следующей командыПочему не ругательство log 500 внутренних ошибок сервера для stderr?

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" 

, но я не получаю никакого вывода для этого 500 из запущенного gunicorn экземпляра. Это делает практически невозможным отладку ошибки.

Так что я попытался запустить 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, не регистрируется в stderr от Gunicorn? Все советы приветствуются!

Если это важно: я использую gunicorn версию 18,0

+0

Что в error.log Nginx в? –

ответ

0

Оказывается, что я забыл, что если в рабочем режиме, протоколирует приложения ошибок в другое приложение конкретного файла журнала.

Может быть, это служит напоминанием для будущих людей, чтобы проверить журналы конкретных приложений .. :-)