Estou usando o nginx + gunicorn + django no meu site.
O seguinte é o 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 eu mudo para o dir /home/django
, o seguinte comando (que é o mesmo que os códigos no antigo arquivo de configuração) funcionou como um encanto:
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 remover a parte de registro 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: aplicativo
Com service gunicorn start
, o serviço é executado. Mas 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:
Mathematics (from Greek μάθημα máthēma, “knowledge, study, learning”)
Mas quando eu executo o gunicorn usando o serviço, a codificação do caracter não-ascii está totalmente errada:
*
Mathematics (from Greek ?????? m?th?ma, ?knowledge, study, learning?)