gunicorn: 장고 어드민 프로덕션 서버에 구동하기

runserver로 장고 서버를 구동할수 있지만 운영서버에서는 사용하지 말아야한다. (참고) 백그라운드 프로세스로 구동할 수 있지만 성능이나 안전성 이슈가 있는가 보다.

gunicon은 장고 서버를 관리하는 툴이다. 포에버가 노드를 관리하는 것과 비슷한 역할인 것 같다. 데몬으로 구동하고 워커를 생성하는 기능이 있다. gunicon을 이용해 장고 서버를 구동해 보자.

설치

$ pip install gunicorn

소스 설치나 apt, yum으로 설치하려면 여기 참고

static 파일 호스팅

js, css 파일등은 nginx로 호스팅 해야한다.

settings.py에 정적 파일을 저장할 폴더를 설정한다.

STATIC_ROOT = '/static/files/path/'

collectstatic 명령으로 스태틱 파일을 생성한다.

$ python manage.py collectstatic

nginx로 해당파일을 호스팅한다.

server {
    listen localhost:8000;

    location / {
        proxy_pass http://127.0.0.1:8001;
    }

    location /static/ {
        autoindex on;
        alias /static/files/path/;
    }
}

gunicon 실행

gunicorn project.wsgi:application --bind=127.0.0.1:8001 --daemon --reload
  • --daemon: 데몬 프로세스로 실행
  • --reload: 소스 변경시 재구동

참고