gunicorn 2

02. flask + gunicorn + docker 조합

파이썬을 이용해서 웹 애플리케이션 서버를 작성할 때, flask 만큼 쉬운게 없다고 생각한다. 회사에서도 간단한 WAS를 작성할 때 flask를 사용하고 있다. flask 관련해서 기억하고 싶은 것들 몇 가지를 정리해본다. Flask 와 Gunicorn, 그리고 Docker 같이 쓰기 플라스크는 내부적으로 Blocking 작업이 있을 경우, A가 API 작업에 요청을 보내고 B가 동일 API에 요청을 해도, A가 다 처리 될 때 까지 기다린다. 따라서 flask 앱 내부에서 IO(request, file) 작업을 할 때 주의 해야한다. 플라스크 앱은 기본적으로 synchronous 하다. 하지만, 이 부분에서 gunicorn을 통해 여러 워커를 띄워 워커 개수 만큼의 요청을 동시에 처리하게 할 수 있다...

http&server 2020.07.29

01. Web Server, WAS, CGI, WCGI에 대해

웹 관련 몇 가지 용어에 대해서 정리해본다. Web Server 웹서버는 기본적으로 클라이언트로부터 요청된 웹 리소스를 서빙해주는 소프트웨어라고 정의한다. 기본적으로는 정적인(static) 자원을 그대로 리턴해주는 역할이 핵심이다. 동적인(dynamic) 자원을 리턴하고 싶다면 뒷단에 WAS(Web Application Server ; flask, node)를 배치하여 커뮤니케이션하면서 WAS의 결과를 서빙해주는 식으로 동작한다. 보통 80번 포트에서 대기하고 있고, 요청이 들어오면 해석해서 응답한다. CGI라는 것이 있어서 이를 통해 앱을 실행시키거나 static file을 리턴하기도 함. (CGI는 이후에 설명) 예시로, nginx와 apache 서버 등이 있다. 프로세스 기반의 apache 서버도,..

http&server 2020.07.29