[uWSGI] ini파일을 통해 uWSGI 실행하기
ini 파일을 통해서 쉽게 uWSGI를 실행하자
환경
- Ubuntu 14.04
- uWSGI 사용법 및 실행 경험(참고: Nginx uWSGI Django 연결하기)
- [선택] pyenv 및 virtualenv설치(참고: Ubuntu에서 pyenv, virtualenv 사용하기)
사전 준비사항
- 위에
환경
에 나와있는 준비사항들만 준비되면 가능합니다. - Nginx uWSGI Django 연결하기의 연장선으로 ini 파일 작성법만 다뤄 볼 예정
uWSGI ini 파일 작성
사용하고자하는 프로젝트 root 폴더에 ini파일을 하나 생성합니다.
Django와 같은 경우 manage.py가 있는 폴더에 생성해주시면 됩니다.
$ touch ini_file_name.ini
지금 진행하는 프로젝트의 경우 파일 이름을 linku_uwsgi.ini로 하였습니다.
$ touch linku_uwsgi.ini
uWSGI ini 파일 작성
LinkU 프로젝트 ini파일 예시
linku_uwsgi.ini
#linku_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/linku/LinkU/linku_backend
# Django's wsgi file
module = linku.wsgi
# the virtualenv (full path)
home = /home/linku/.pyenv/versions/LinkU/
virtualenv = /home/linku/.pyenv/versions/LinkU/
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# the socket (use the full path to be safe
socket=/home/linku/LinkU/linku_backend/linku.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit
vacuum = true
# daemonize the process
daemonize=/home/linku/LinkU/linku_backend/linku.log
# process pid
pidfile=/tmp/linku_backend.pid
# newrelic settings
enable-threads = true
single-interpreter = true
lazy-apps = true
chdir
: 프로젝트 기본 경로입니다. django의 경우 manage.py가 위치는 곳을 경로로 잡아주면 됩니다.module
: django 프로젝트를 생성하면 해당 프로젝트 이름으로 생성되는 wsgi.py가 생성되는데 해당 파일을 모듈로 불러옵니다.프로젝트이름.wsgi
로 해주시면됩니다.home, virtualenv
: 파이썬 가상환경이 위치한 폴더의 경로를 잡아주면 됩니다.master
: uWSGI 프로세스를 master로 돌아가게 해줍니다.processes
: 프로세스 수 입니다.socket
: UNIX socket 파일의 위치입니다. socket file의 위치를 잡아줘도 되며 localhost와 port를 명시해줘도 됩니다.chmod-socket
: UNIX socket에 대한 권한 설정입니다. 666을 해야 실행이 가능합니다.vacuum
: uWSGI를 통해서 생성된 파일들은 삭제하는 옵션입니다.daemonize
: 백그라운드로 돌리기 위한 설정이며 log파일을 남길 경로를 지정해주면 됩니다.pidfile
: 생성할 pid 파일의 위치입니다.enable-threads
: thread 사용을 앱(uWSGI) 내에서 가능하게 해줍니다.single-interpreter
: 단일한 python interpreter를 사용하게 하는 옵션입니다.lazy-apps
: master말고 각각의 worker에(master에서 spawn한 자식들) 앱을 로드하는 설정입니다.
uWSGI 실행하기
uWSGI가 pip를 통해 설치되어 있는 환경이라 한다면 다음과 같은 명령어로 실행이 가능합니다.
$ uwsgi --ini [ini filename or path]
예시
$ uwsgi --ini linku_uwsgi.ini