티스토리 뷰

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 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 너무 쉽다 했음 ㅜ

Flask에서 기본적으로 제공되는 내장 웹서버를 쓰지 말라는 것이다.

Flask가 갖고 있는 내장 웹서버 기능 덕분에, 다른 셋팅 없이 localhost의 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 한다.)

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
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 31
글 보관함