Estou usando nginx+gunicorn+django para meu site.
A seguir está meu arquivo 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 \
Quando eu corro
service gunicorn start
E quando mudo para dir /home/django
, o seguinte comando (que é igual aos códigos do arquivo de configuração anterior) funcionou perfeitamente:
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
Mas o primeiro não pode ser iniciado, quando eu removo a parte de log no arquivo de configuração: exec gunicorn \ --name=eduwiki \ --pythonpath=eduwiki \ --bind=0.0.0.0:9000 \ --config /etc/ gunicorn.d/gunicorn.py\eduwiki.wsgi:application Com service gunicorn start
, o serviço é executado. Mas ele se comporta de maneira diferente da execução direta no terminal.
Ao executar diretamente do terminal, a codificação de caracteres exibida na página da web está correta, como a seguir:
Matemática (do grego μάθημα máthēma, “conhecimento, estudo, aprendizagem”)
Mas quando executo o gunicorn usando o serviço, a codificação de caracteres não-ascii está totalmente errada:
*
Matemática (do grego ?????? m?th?ma, ?conhecimento, estudo, aprendizagem?)
-
*
Responder1
Suas sessões de terminal interativo normalmente são preenchidas automaticamente com LC_ALL
configurações de localidade e idioma LC_LANG
e LANG
muitos clientes SSH substituirão os padrões do servidor encaminhando essas variáveis de ambiente de sua estação de trabalho.
Freqüentemente, eles são diferentes dos padrões do sistema, que são usados quando um daemon é iniciado como um serviço a partir dos scripts de inicialização. Remova o comentário das # export
linhas do script de inicialização e preencha o ambiente com as configurações adequadas.