JHB의 프로그래밍 삽질기

Flask를 Production 용으로 쓰지 말아라! 본문

PROGRAMMING/Python

Flask를 Production 용으로 쓰지 말아라!

roter 2018.07.31 23:32

ec2에 flask로 만든 서버를 실행하고.. 5000 번 포트를 열고.. 외부에서 아무리 접속하려고 해도 안된다-_-

 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

실행하면 위처럼 나오길래.. 위의 키워드로 검색해보니..

flask는 개발용.. 으로 쓰는 놈이라 localhost로 접근할때나 쓰고.. 프로덕션용으로는 쓰지 말랜다.

Flask Is Not Your Production Server

While lightweight and easy to use, Flask’s built-in server is not suitable for production as it doesn’t scale well and by default serves only one request at a time.

https://vsupalov.com/flask-web-server-in-production/

엉엉.. 그렇다면 지금까지 flask로 짠건 어쩌구.. 다시 다른걸로 짜야하나요? 어쩐지 flask 너무 쉽다 했음 ㅜ

그래서 이것저것 검색해보니 apache랑.. nginx+gunicorn 쓰는법이 나온다.

 

우선 apache 쓰는 법은 아래에 있다.

https://www.datasciencebytes.com/bytes/2015/02/24/running-a-flask-app-on-aws-ec2/

짱 복잡하다...

 

그리고 nginx + gunicorn으로 하는 법은 아래에 있다.

https://chrisdtran.com/2017/deploy-flask-on-ec2/

 

여튼.. 쓰지 말라는건 쓰지 말면 되고..

위의 문제를 해결하려면 이렇게 하면 된다.

app.run() 부분을 app.run(host = '0,0,0,0') 으로 바꾸면 모든 ip에 대해서 listen 한다. (default는 127.0.0.1에 대해서만 listen 한다.)

 

 

 

 

 

0 Comments
댓글쓰기 폼