Uwsgi / Flask / Nginx란?
Uwsgi : 미들웨어 역할을 하는 웹 인터페이스
Flask : 파이썬 웹 어플리케이션 개발을 위한 경량 웹 프레임워크
Nginx : Apache와 같은 웹서버, 비동기 이벤트 기반의 웹서버로 프록시/리버스 프록시 등을 지원
패키지 설치 및 환경설정
$ pip install flask
$ apt-get install uwsgi
$ apt-get install nginx
먼저 flask / uwsgi / nginx를 pip/apt-get 이용하여 설치한다.
Uwsgi 설정하기
uwsgi.ini 파일을 다음과 같이 설정해준다.
[uwsgi]
chdir = /home/ubuntu/BlooferBlog
callable = app
plugin = python3
module = wsgi
master = true
socket = /tmp/uwsgi.sock
chmod-socket = 666
vacuum = true
die-on-term = true
ignore-sigpipe=true
ignore-write-errors=true
disable-write-exception=true
chdir은 프로젝트의 경로
callable은 실행 오브젝트
wsgi는 wsgi 실행파일을 의미한다.
$ sudo service uwsgi restart
$ sudo service uwsgi reload
위 두 명령으로 uwsgi 환경파일 변경후의 적용을 위해 서비스 재시작 후 재로드한다.
Nginx 설정하기
uwsgi 설정의 완료이후 소켓파일이 정상 생성되었다면, 이후 Nginx 웹서버 환경을 설정한다.
/sites_available 디렉토리 내에 default 파일을 생성하였다.
server {
listen 80;
server_name 3.36.219.130;
root /home/ubuntu/BlooferBlog;
location / {
try_files $uri @app;
}
location @app {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
listen 80은 서버의 통신포트
server_name는 서버의 도메인(혹은 IP)
root는 프로젝트 디렉토리의 경로
app의 실행경로에 uwsgi의 소켓 생성경로를 넣어주면 된다.
이후, 아래와 같이 nginx를 재시작하여 확인한다.
$ sudo service nginx restart