uWSGI, gunicorn의 차이

JinWooHyun·2021년 10월 7일
0

WSGI(Web Server Gateway Interface)는 웹서버와 파이썬으로 구현한 웹 어플리케이션 서버가 통신을 하기 위한 규약(인터페이스)입니다. 쉽게 말해 HTTP 메세지를 파이썬 call로 변환하는 것입니다. 즉, 웹서버와 파이썬 어플리케이션 서버 사이에 wsgi middleware라고 불리는 wsgi 구현체가 중간에 끼게되는 것입니다.

Flask 앱만으로도 웹서버와 통신을 할 수 있도록 간단한 WSGI 서버를 가지고 있긴하지만, 개발용이기 때문에 수 많은 요청을 처리할 수 있도록 설계되지는 않았습니다.

wsgi 서버를 실행할 때 여러개의 프로세스를 실행할 수 있도록 설정이 가능합니다. 설정시 프로세스 개수를 N개라고 한다면, N개의 똑같은 파이썬 어플리케이션 서버가 실행됩니다. 그러면 웹서버는 요청이 들어오면 wsgi 서버를 통해 요청을 분산시킵니다. 이 때 wsgi 서버들은 멀티 쓰레드가 아닌 멀티 프로세스로 생성합니다.

gunicorn은 간단하고 서버의 리소스를 적게 쓰며 빠르고, uwsgi는 pure C언어로 구현되었기 때문에 좀 더 하드한 서비스를 위해 디자인되었다고 합니다.

참고 블로그

파이썬 서버 배포하기 - 1.WSGI(gunicorn,uwsgi)란?

profile
Unicorn Developer

0개의 댓글