슬기로운 세팅 생활
[Nginx + Flask + Uwsgi] 초기 세팅
vhrehfdl
2019. 11. 9. 15:20
1. Nginx, Flask, Uwsgi를 설치한다.
pip3 install nginx
pip3 install uwsgi
pip3 install flask
pip3 install uwsgi-plugin-python
2. Flask 실행
- test.py 라는 파일을 만들고 실행하여 결과를 확인한다.
from flask import Flask
application = Flask(__name__)
@application.route("/")
def hello():
return "<h1>Hello!</h1>"
if __name__ == "__main__":
application.run(host='0.0.0.0')
- curl 명령어를 실행해서 확인해본다.
curl http://localhost:5000
3. uwsgi 파일 만들기
from test import application
if __name__ == "__main__":
application.run()
- curl 명령어를 실행시켜 확인
uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi
4. ini 파일을 만든다.
- 매번 uwsgi 파일을 실행시킬 때 명령어를 써줄 수 없으니 파일을 만들어둔다.
- socket 파일은 아래 실행 명령어를 실행시키면 자동으로 생성 되어진다.
[uwsgi]
chdir = /var/www/html/StoryAI/storyai/web
module = wsgi
socket = /tmp/myproject.sock
chmod-socket = 666
- 실행 명령어
uwsgi --ini myproject.ini
5. nginx의 환경설정을 변경한다.
- /etc/nginx/sites-avilable/defalut
- 다른 예제들에서는 location @app을 설정해서 하는데 이거 인식이 잘 안되서 location / { 부분에 설정을 해주니까 되었다.
- sock 파일을 통해서 서로 연결되어진다.
- 여기서 실수 했던게 try_files $url $url\ =404; 부분을 주석처리 안하니까 app.route를 다른걸 설정하니까 접속이 되지 않았다. 뻘짓했다.
* 참고 사이트
- https://cjh5414.github.io/flask-uwsgi-nginx/
- https://whatisthenext.tistory.com/124
- https://twpower.github.io/43-run-uwsgi-by-using-ini-file