Я использую nginx+gunicorn+django для своего сайта.
Ниже представлен мой файл gunicorn.conf:
description "Gunicorn daemon for Django project"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid django
setgid django
chdir /home/django
# export LC_ALL=en_US.UTF-8
# export LC_LANG=en_US.UTF-8
# export LANG=en_US.UTF-8
exec gunicorn \
--name=eduwiki \
--pythonpath=eduwiki \
--bind=0.0.0.0:9000 \
--log-level debug \
--log-file /var/log/gunicorn/error_logs.log \
--config /etc/gunicorn.d/gunicorn.py \
eduwiki.wsgi:application
# --access-logfile /var/log/gunicorn/acclogs.log \
Когда я бегу
service gunicorn start
И когда я перешел в dir /home/django
, следующая команда (которая совпадает с кодами в предыдущем файле конфигурации) сработала как по маслу:
exec gunicorn --name=eduwiki --pythonpath=eduwiki --bind=0.0.0.0:9000 --log-level debug --log-file /var/log/gunicorn/error_logs.log --config /etc/gunicorn.d/gunicorn.py eduwiki.wsgi:application
Но первый не может быть запущен, когда я удаляю часть логирования в файле конфигурации: exec gunicorn \ --name=eduwiki \ --pythonpath=eduwiki \ --bind=0.0.0.0:9000 \ --config /etc/gunicorn.d/gunicorn.py \ eduwiki.wsgi:application С service gunicorn start
, служба запускается. Но она ведет себя иначе, чем напрямую запущенная в терминале.
При запуске непосредственно из терминала кодировка символов, отображаемая на веб-странице, правильная, например:
Математика (от греч. μάθημα máthēma, «знание, изучение, учение»)
Но когда я запускаю gunicorn с помощью сервиса, кодировка не-ASCII-символа оказывается совершенно неправильной:
*
Математика (от греч. ?????? m?th?ma, ?знание, изучение, учение?)
-
*
решение1
Ваши интерактивные терминальные сеансы обычно автоматически заполняются LC_ALL
настройками локали и языка LC_LANG
, и LANG
многие клиенты SSH переопределяют настройки сервера по умолчанию, пересылая эти переменные среды с вашей рабочей станции.
Часто они отличаются от системных значений по умолчанию, которые используются при запуске демона как службы из скриптов запуска. Раскомментируйте строки # export
в скрипте запуска и заполните среду подходящими настройками.