Estoy usando nginx+gunicorn+django para mi sitio web.
El siguiente es mi archivo 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 \
cuando corro
service gunicorn start
Y cuando cambio al directorio /home/django
, el siguiente comando (que es el mismo que los códigos en el archivo de configuración anterior) funcionó de maravilla:
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
Pero el primero no se puede iniciar cuando elimino la parte de registro en el archivo de configuración: exec gunicorn \ --name=eduwiki \ --pythonpath=eduwiki \ --bind=0.0.0.0:9000 \ --config /etc/ gunicorn.d/gunicorn.py \ eduwiki.wsgi:application Con service gunicorn start
, se ejecuta el servicio. Pero se comporta de manera diferente a ejecutarse directamente en la terminal.
Cuando se ejecuta directamente desde la terminal, la codificación de caracteres que se muestra en la página web es correcta, como la siguiente:
Matemáticas (del griego μάθημα máthēma, “conocimiento, estudio, aprendizaje”)
Pero cuando ejecuto gunicorn usando el servicio, la codificación de caracteres que no son ASCII es totalmente incorrecta:
*
Matemáticas (del griego ?????? m?th?ma, ?conocimiento, estudio, aprendizaje?)
-
*
Respuesta1
Por lo general, sus sesiones de terminal interactiva se completan automáticamente con LC_ALL
configuraciones locales y de idioma LC_LANG
y LANG
muchos clientes SSH anularán los valores predeterminados del servidor reenviando esas variables de entorno desde su estación de trabajo.
A menudo, estos son diferentes de los valores predeterminados del sistema, que se utilizan cuando un demonio se inicia como un servicio desde los scripts de inicio. Descomente las # export
líneas en el script de inicio y complete el entorno con la configuración adecuada.