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++)
'# Development > DevOps' 카테고리의 다른 글
[Nginx] ubuntu 환경에서 Flask 배포하기 (Github, uWSGI, Socket) (0) | 2023.02.27 |
---|---|
[Nginx] Nginx란 무엇인가? (0) | 2023.02.14 |
[AWS EC2] 인스턴스 중지 및 시작 (0) | 2023.01.18 |
[Ubuntu] 리눅스 우분투 Cron(크론), Crontab(크론탭) 설정 (0) | 2023.01.09 |