내 웹사이트에 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
서비스가 실행됩니다. 그러나 터미널에서 직접 실행하는 것과는 다르게 동작합니다.
터미널에서 직접 실행할 때 웹페이지에 표시되는 문자 인코딩은 다음과 같이 정확합니다.
수학(그리스어 μάθnμα máthēma, “지식, 연구, 학습”에서 유래)
하지만 서비스를 사용하여 gunicorn을 실행하면 ASCII가 아닌 문자의 인코딩이 완전히 잘못되었습니다.
*
수학(그리스어 ??????m?th?ma, ?지식, 연구, 학습?)
-
*
답변1
대화형 터미널 세션은 일반적으로 로캘 LC_ALL
및 언어 설정 으로 자동으로 채워 LC_LANG
지며 LANG
많은 SSH 클라이언트는 워크스테이션에서 해당 환경 변수를 전달하여 서버 기본값을 재정의합니다.
이는 데몬이 시작 스크립트에서 서비스로 시작될 때 사용되는 시스템 기본값과 다른 경우가 많습니다. # export
시작 스크립트에서 해당 행의 주석 처리를 제거 하고 환경을 적절한 설정으로 채웁니다.