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
: 소스 변경시 재구동