[python] 장고 웹서비스

장고 웹서비스

아래는 2019년 10월 21일 케라스 코리아 대화방에서 복사한 글이다. 메모용으로 일단 남겨둔다.

[준범] [오전 1:05] Django만으로 runserver로 서빙하시면 안됩니다. Nginx+Gunicorn등의 조합으로 static파일은 웹서버가 서빙하고, wsgi(장고 앱로직)는 gunicorn통해서 동작하도록 하는게 맞아요. [준범] [오전 1:07] Apache2(httpd) vs NginX는 편하신걸 쓰시면 되고, 만약 AWS등을 사용하신다면 ELB등 로드밸런서 겸 HTTP응답 게이트를 두시면 NginX등 웹서버 없이 static파일은 s3+CloudFront로 서빙하시고, 로직 부분은 단순히 gunicorn쪽으로 가도록 구현하셔도 됩니다 [조충희] [오전 1:07] django는 웹을 쉽게 구성할 수 있는 프레임워크이기 때문에 서버 기능할 수 있는 nginx가 필요합니다. nginx+django가 많이 사용되는 것으로 알고 있습니다. [배창호] [오전 1:07] 어플리케이션을 제작중이고 웹사이트는 홍보용, 회원관리용으로 사용하려합니다 AWS사용예정입니다. [준범] [오전 1:08] 보다 정확히는… 웹서버 = Static file 서빙 (HTML/JS/CSS), 장고 로직은 Python 워커가 돌아가는 WSGI를 통해서 구동됩니다. (꼭 Nginx등이 필요한건 아니에요. 특히 클라우드 플랫폼 위에서는) [이수진] [오전 1:11] 파이썬 특성상.. application사이즈에 따라 django로 한계가 있을 수도 있습니다 [최정명] [오전 1:13] 한글 제목이라서 ㅠㅠ 어쩔수가 없어요 [이수진] [오전 1:13] 근데 WAS 기능을 사용하려면 nginx나 apache가 필요하지 않나요?? [최정명] [오전 1:13] 감사합니다 참고해볼게요!! [배창호] [오전 1:19] 네 감사합니다! [조힘찬빛] [오전 1:20] 이야…… 처음 알았습니다. 감사합니다. [배창호] [오전 1:21] 감사합니다! [준범] [오전 1:22] 무척 세부적으로 하려면 NginX나 아파치 쓰는것도 나쁘지 않지만, 클라우드상에서 로드밸런싱 등 여러가지 ‘웹 서버가 해야하는 일’을 맡아주고 있다 보니, ECS등 위에 gunicorn을 통해 띄워지면 HTTP 응답을 바로 보내줄 수 있고 성능도 괜찮아서, 웹서버(static) 있어도 단순히 리버스프록시 혹은 소켓연결을 위한 수단정도(apache - modwsgi, nginx-uwsgi 등)로 이용되는거라 레이어를 추가할때 이점이 공수에 비해 크지 않다고 생각하는데, 혹시 제가 모르는 큰 이슈가 있나요? [옥순환] [오전 1:40] 저도 준범님 말에 동감하는게 요새 클라우드 단에서 쉽게 관리할 수 있는게 많아서 gunicorn만으로도 충분하다고 생각하네요. 애초에 사이즈 커지면 프론트 프레임워크가 들어가야하고 그 떄 아파치나 nginx쓰면 되고요. 그럼 말씀해주신 “클라우드상에서 로드밸런싱 등 여러가지 ‘웹 서버가 해야하는 일’” 에서 웹 서버는 웹 애플리케이션 서버(WAS)를 뜻하는 말씀이신가요?? [준범] [오전 1:43] WAS아니고 그냥 static file서빙하는 진짜 단순 ‘웹 서버’ 요 ㅋㅋ 로직 전혀 없는