uWSGI와 함께 django를 사용하는 방법¶
uWSGI_은(는) 빠르고 자가 치료 및 개발/sysadmin 친화적인 애플리케이션 컨테이너 서버로, 순수 C로 코딩되어 있습니다.
더 보기
uWSGI 문서는 Django, nginx 및 uWSGI(다수의 배포 설정 중 하나)를 포함하는 ‘자습서’를 제공한다. 아래 문서는 Django를 uWSGI와 통합하는 방법에 초점을 맞추고 있습니다.
전제 조건 : uWSGI¶
uWSGI 위키에는 여러 설치 절차가 설명되어 있다. Python 패키지 관리자 pip을 사용하면 단일 명령으로 uWSGI 버전을 설치할 수 있습니다. 예:
# Install current stable version.
$ python -m pip install uwsgi
# Or install LTS (long term support).
$ python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
uWSGI 모델¶
uWSGI는 클라이언트-서버 모델에서 작동합니다. 웹 서버(예: nginx, Apache)는 동적 컨텐츠를 제공하기 위해 ``django-uwsgi” 프로세스로 통신합니다.
Django용 uWSGI 서버 구성 및 시작¶
uWSGI는 프로세스를 구성하는 다양한 방법을 지원합니다. uWSGI의 ‘구성 설명서’를 참조하십시오.
Here’s an example command to start a uWSGI server:
uwsgi --chdir=/path/to/your/project \
--module=mysite.wsgi:application \
--env DJANGO_SETTINGS_MODULE=mysite.settings \
--master --pidfile=/tmp/project-master.pid \
--socket=127.0.0.1:49152 \ # can also be a file
--processes=5 \ # number of worker processes
--uid=1000 --gid=2000 \ # if root, uwsgi can drop privileges
--harakiri=20 \ # respawn processes taking more than 20 seconds
--max-requests=5000 \ # respawn processes after serving 5000 requests
--vacuum \ # clear environment on exit
--home=/path/to/virtual/env \ # optional path to a virtual environment
--daemonize=/var/log/uwsgi/yourproject.log # background the process
이것은 당신이 “mysite”라는 이름의 최고 수준의 프로젝트 패키지를 가지고 있고 그 안에 파일:mysite/wsgi라는 모듈이 있다고 가정한다.WSGI의 “응용프로그램”을 담고 있는 py. 최신 버전의 장고와 함께 ``장고 관리 시작 프로젝트 my site” (내 사이트 대신 자신의 프로젝트 이름을 사용함)를 실행하면 이렇게 배치된다. 이 파일이 없으면 파일을 만들어야 합니다. 이 파일에 넣어야 하는 기본 내용과 파일에 추가할 수 있는 내용은 :doc:’/how to/deploy/wsgi/index’ 문서를 참조하십시오.
여기서 Django별 옵션은 다음과 같습니다.
- “치디르: Python의 가져오기 경로에 있어야 하는 디렉터리(즉, “mysite” 패키지를 포함하는 디렉터리)의 경로입니다.
- “말하자면: 사용할 WSGI 모듈 - 아마도 “내 사이트”일 것이다.假admin:’start project’가 만드는 wsgi² 모듈.
env
: 최소한은DJANGO_SETTINGS_MODULE
. 을 포함해야 한다.- “홈”: 프로젝트 가상 환경에 대한 옵션 경로입니다.
Example ini configuration file:
[uwsgi]
chdir=/path/to/your/project
module=mysite.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/yourproject.log
Example ini configuration file usage:
uwsgi --ini uwsgi.ini
파일 업로드를 위한 “유니코드 인코딩 오류” 수정
If you get a UnicodeEncodeError
when uploading files with file names
that contain non-ASCII characters, make sure uWSGI is configured to accept
non-ASCII file names by adding this to your uwsgi.ini
:
env = LANG=en_US.UTF-8
자세한 내용은 유니코드 참조 안내서 Files 의 섹션을 참조하십시오.
uWSGI 작업자의 시작, 중지 및 재로드에 대한 내용은 uWSGI 프로세스 관리(uWSGI 프로세스 관리) 문서를 참조하십시오.