기본 콘텐츠로 건너뛰기

[Flask] Nginx로 배포하기

[Flask] Nginx로 배포하기

Flask를 Nginx로 배포하기

저는 '네이버 클라우드 플랫폼'의 Micro Server를 이용했습니다. 1vCPU 1GB Mem 50GB Disk Ubuntu Server 16.04 64bit

우선 Flask를 사용하기 위한 유저를 추가해줍니다.

$ sudo adduser flask

추가한 flask 계정에 권한을 줍니다.

$ sudo visudo

# User privilege specification

root ALL=(ALL:ALL) ALL

flask ALL=(ALL:ALL) ALL <- 추가

이제 추가한 flask 계정으로 이동합니다.

$ su - flask

Flask 개발에 필요한 프로그램들을 설치합니다.

$ sudo apt-get install build-essential python3 python3-dev

python3-pip nginx uwsgi uwsgi-plugin-python3

파이썬 가상환경을 위한 virtualenv 설치와 가상환경 생성입니다.

$ sudo pip install virtualenv

$ virtualenv flask_env

$ source flask_env/bin/activate

(flask_env) flask@ubuntu:~$ <- 이렇게 앞에 가상환경이름이 나오면 가상환경에서 작업중인것입니다.

$ deactivate <- 가상환경 비활성화 명령어

가상환경에서 사용할 uwsgi를 설치합니다.

(flask_env) flask@ubuntu:~$ pip3 install uwsgi

이제, Flask와 Nginx의 연동을 위해 관련 설정을 해줍니다.

Nginx 설정

$ sudo nano /etc/nginx/sites-available/default

설정 내용

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name 0.0.0.0;

location / {

try_files $uri @app;

}

location @app {

include uwsgi_params;

uwsgi_pass unix:/home/flask/flask_env/uwsgi.sock;

}

}

uwsgi 설정

$ sudo nano /etc/uwsgi/apps-available/uwsgi.ini

설정 내용

[uwsgi] chdir = /home/flask/flask_app <-flask 경로

uid = flask

gid = flask

chmod-socket = 666

socket = /home/flask/flask_env/uwsgi.sock

module = start <- flask 파일 이름 ex) start.py

callable = app <- app = Flask(__name__) 에서 app 부분

virtualenv = /home/flask/flask_env

uwsgi 설정 파일을 링크해줍니다.

$ sudo ln -s /etc/uwsgi/apps-available/uwsgi.ini /etc/uwsgi/apps-enabled/

테스트 해볼 flask app을 만듭니다.경로는 ~/flask_app/start.py로 하겠습니다.

$ cd ~

$ mkdir flask_app

$ vi start.py

start.py의 코드입니다!

from flask import Flask

app = Flask ( __name__ )

. route ( '/' )

def hello ():

return 'Hello ILHAN!'

if __name__ == '__main__' :

app . run ()

거의 다 끝났습니다!!

Nginx, uwsgi를 재시작해줍니다.

$ sudo service nginx restart

$ sudo service uwsgi restart

끝!

이제 제대로 작동이 되는지 접속을 해보면 됩니다!

from http://ilhan-blog.tistory.com/2 by ccl(A) rewrite - 2020-03-06 05:54:17

댓글

이 블로그의 인기 게시물

Flask 13. pythonanywhere에 배포하기

Flask 13. pythonanywhere에 배포하기 Login: PythonAnywhere It's always a pleasure to hear from you! Ask us a question, or tell us what you love or hate about PythonAnywhere. We'll get back to you over email ASAP. Sorry, there was an error connecting to the server. Please try again in a few moments... www.pythonanywhere.com from http://ohdowon064.tistory.com/124 by ccl(A) rewrite - 2020-03-11 15:54:10

[ubuntu] FLASK_APP

[ubuntu] FLASK_APP Development/Debugging 🐞 FLASK_ENV=development FLASK_APP = app.py flask run zsh: command not found: FLASK_APP ✔️ FLASK_ENV=development FLASK_APP=app.py flask run 띄어쓰기를 해서 저런 오류를 출력할수도 있구나 😲 참고 : 108p에서 FLASK가 FKAS로 오타나있다. from http://hee-stories.tistory.com/18 by ccl(A) rewrite - 2020-03-24 17:20:11