# Django 6.0.7 문서

# 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

### uWSGI 모델

uWSGI는 클라이언트-서버 모델에서 작동합니다. 웹 서버(예: nginx, Apache)는 동적 컨텐츠를 제공하기 위해 ``django-uwsgi” 프로세스로 통신합니다.

### 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

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

ASCII가 아닌 문자가 포함된 파일 이름으로 파일을 업로드할 때 ``UnicodeEncodeError``가 발생한다면, ``uwsgi.ini``에 다음 항목을 추가하여 uWSGI가 ASCII가 아닌 파일 이름을 허용하도록 구성하세요.

    env = LANG=en_US.UTF-8

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

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