본문 바로가기

# Development/DevOps

[WSGI] WSGI란?

WSGI (Web Server Gateway Interface)

python으로 작성한 Django, Flask와 같은 웹 프레임워크에서

Apache, Nginx 같은 웹 서버와 통신할 때 사용하는 프로토콜이다.

 

 

WSGI 특징

1. 파이썬 스크립트가 웹 서버와 통신하도록 도와준다.

2. 웹 서버와 웹 애플리케이션 사이에 위치한다.

🔮 웹 서버
- Apache, Nginx
- 웹 서버는 html, image등 정적인 파일, 소스 등을 처리함 
🔮 웹 앱
- Django, Flask와 같은 파이썬 프레임 워크
- 동적인 요청을 처리해서 웹 서버에 처리한 결과를 돌려줌

 
WSGI는 서버와 앱 사이에서 callable object를 통해 웹 서버 요청해 대한 정보를 웹 앱에 전달
 

CGI

  • 2003년까지 사용하던 파이썬 인터페이스
  • 2003년 WSGI가 파이썬 표준이 됨
  • WSGI는 CGI 보다 메모리 사용이 적음

 

WSGI Middleware

  • Authentication, Routhing, Session, Cookie, Error Page 보여주기 같은 기능 추가해준다.
  • 파이썬 웹 프레임워크와 함께 사용된다.
  • 대표적인 라이브러리: uWSGI, Gunicorn, Werkzeug

 

WSGI Middleware 라이브러리

Gunicorn

  • UNIX에서 사용하기 위해 만들어진 Python WSGI HTTP server
  • 빠르고 가벼움
  • HTTP proxy server로 Nginx 권장

 

mod_wsgi

  •  Apache HTTP Server 모듈

 

uWSGI

  • Hosting server에서 full stack 개발을 위해 개발됨
  • 다양한 언어, 프로토콜, 프로세스 매니저, 프록시 등을 다양하게 다룰 수 있도록 개발
  • 다른 언어들과 호환 가능 (Objective-C, C, C++) 

 


<참고>
- https://yeowool0217.tistory.com/662