티스토리 뷰

Programming

[Flask] Nginx로 배포하기

일한 2017. 9. 13. 19:27

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__)

@app.route('/')
def hello():
return 'Hello ILHAN!'

if __name__ == '__main__':
app.run()


거의 다 끝났습니다!!


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


$ sudo service nginx restart
$ sudo service uwsgi restart


끝!

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

'Programming' 카테고리의 다른 글

[RPI] 라즈베리파이에서 Selenium 사용하기  (0) 2019.05.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함