Откуда Django стандартный вывод go при работе с nginx и Gunicorn? - PullRequest
0 голосов
/ 17 апреля 2020

Например, в моем файле my_application / settings.py у меня есть пара операторов print, таким образом:

print( 'running settings.py: ALLOWED_HOSTS: ' )
print( '\n'.join( ALLOWED_HOSTS ) )

... где этот вывод на самом деле go на удаленном сервер работает nginx и Gunicorn?

NB Я знаю, что это может быть вопиющее нарушение безопасности, чтобы напечатать ALLOWED_HOSTS где угодно, насколько я знаю. Это всего лишь пример: я нахожусь на стадии обучения / эксперимента.

Редактировать после ответа AKX
Я не нашел способа заставить stdout быть направленным на journalctl даже с переключателем -R.

... после многих экспериментов, разочарований и сбивающих с толку ошибок 502 я наконец нашел способ: мой конфигурационный файл systemd теперь выглядит так:

[Unit]
Description=Gunicorn server for mysite.xyz

[Service]
Restart=on-failure
User=mike
WorkingDirectory=/home/mike/sites/mysite.xyz
EnvironmentFile=/home/mike/sites/mysite.xyz/.env

ExecStart=/home/mike/sites/mysite.xyz/virtualenv/bin/gunicorn \
    --bind unix:/tmp/mysite.xyz.socket \
    -R \
    --capture-output \
    --error-logfile /home/mike/gunicorn-error.log \
    superlists.wsgi:application

[Install]
WantedBy=multi-user.target

... действительно, я считаю, что недостаточно включить переключатель -R: кажется, вам также необходимо включить переключатель --capture-output и переключатель --error-logfile (NB. является назначением по умолчанию для вывода ошибок, если вы не установили этот переключатель).

С указанным выше файлом конфигурации stdout из settings.py переходит в файл ~ / gunicorn-error.log. Hurray.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Когда вы запускаете gunicorn, существует специальный параметр с именем --access-logfile, который указывает файл журнала доступа для записи. Если вы предпочитаете stdout, тогда установите '-' в качестве параметра значения. Например:

gunicorn  --access-logfile - demoapp.wsgi
0 голосов
/ 17 апреля 2020

Везде, куда направлен стандартный вывод gunicorn.

Если вы запустите, например, файлы под systemd, они попадут в системный журнал, который вы можете прочитать с помощью journalctl.

...