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 operates on a client-server model. Your web server (e.g., nginx, Apache) communicates with a django-uwsgi “worker” process to serve dynamic content.

Django용 uWSGI 서버 구성 및 시작

uWSGI는 프로세스를 구성하는 다양한 방법을 지원합니다. uWSGI의 ‘구성 설명서’를 참조하십시오.

다음은 uWSGI 서버를 시작하는 예제 명령입니다.

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. 을 포함해야 한다.
  • “홈”: 프로젝트 가상 환경에 대한 옵션 경로입니다.

ini 구성 파일의 예:

[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

ini 구성 파일 사용 예:

uwsgi --ini uwsgi.ini

파일 업로드를 위한 “유니코드 인코딩 오류” 수정

비ASC 파일 이름을 가진 파일을 업로드할 때 “유니코드 인코딩 오류”가 발생하는 경우II 문자, “uwsgi”에 추가하여 uWSGI가 ASCII가 아닌 파일 이름을 허용하도록 구성되었는지 확인하십시오.이니:

env = LANG=en_US.UTF-8

자세한 내용은 유니코드 참조 안내서 Files 의 섹션을 참조하십시오.

uWSGI 작업자의 시작, 중지 및 재로드에 대한 내용은 uWSGI 프로세스 관리(uWSGI 프로세스 관리) 문서를 참조하십시오.

Back to Top