Gunicorn ведут себя по-разному при запуске из терминала и службы
Я использую 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
И когда я перехожу в реж /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: приложение сservice gunicorn start
Служба работает. Но он ведет себя иначе, чем прямой запуск в терминале.
При запуске непосредственно из терминала правильная кодировка символов, отображаемая на веб-странице, например:
Математика (от греческого языка μ knowledgeθημα máthēma, "знания, учеба, обучение")
Но когда я запускаю gunicorn с помощью сервиса, кодировка не-ascii символа совершенно неверна:
*
Математика (от греческого?????? m? Th? Ma, "знания, учеба, обучение")
- *
1 ответ
Ваши сеансы интерактивного терминала обычно автоматически заполняются локалью LC_ALL
и языковые настройки LC_LANG
а также LANG
и многие клиенты SSH переопределяют настройки сервера по умолчанию, перенаправляя эти переменные среды с вашей рабочей станции.
Часто они отличаются от системных значений по умолчанию, которые используются, когда демон запускается как служба из сценариев запуска. Раскомментируйте # export
строк в сценарии запуска и заполнить среду подходящими настройками.