본문 바로가기

Web/배포

[배포] WSGI, uWSGI

aws로 django와 react로 만든 웹 사이트를 배포하려고 하는데 uwsgi 부분이 잘 와닿지 않음

 

uWSGI는 웹 애플리케이션을 위한 서버 게이트웨이 인터페이스(WSGI) 서버

Python 웹 애플리케이션과 웹 서버(Nginx, Apache, ...) 사이의 중간 계층 역할을 함

 

WSGI(Web Server Gateway Interface)

: 웹 서버(Nginx, Apache, ...)와 웹 애플리케이션(Django, Flask, ...) 사이에서 데이터를 주고받기 위한 표준 인터페이스

 

> ChatGPT의 비유에 의하면..

웹 서버: 레스토랑의 웨이터로 손님(웹 브라우저)로부터 주문을 받아 주방(웹 애플리케이션으로 전달)

웹 애플리케이션: 레스토랑의 주방으로 주문받은 음식을 준비해서 웨이터에게 돌려줌

WSGI: 웨이터와 주방 사이의 주문서

 

예시) Django 웹 애플리케이션의 요청 처리 과정

  1. 사용자가 웹 브라우저에서 URL 입력: 사용자가 https://example.com/login 에 접속
  2. 웹 서버가 요청을 받음: 웹 서버(Nginx/Apache) 는 이 요청을 받아들여 WSGI를 통해 Django 애플리케이션으로 전달
  3. Django 가 요청을 처리
    • Django 애플리케이션의 URL 라우터가 '/login' URL에 매핑된 뷰를 찾음
    • 해당 뷰는 로그인 폼을 표시하는 템플릿을 렌더링
  4. 응답 생성 및 반환
    • Django 뷰는 로그인 폼이 포함된 HTML 페이지 생성, 이를 응답으로 반환
    • 이 응답은 다시 WSGI를 통해 웹 서버로 전달
  5. 웹 서버가 응답 전달
    • 웹 서버는 Django 로부터 받은 응답을 사용자의 웹 브라우저에 전달
  6. 사용자가 응답을 확인
    • 사용자의 웹 브라우저는 HTML 페이지를 렌더링하여 로그인 폼을 표시

 

'Web > 배포' 카테고리의 다른 글

[배포] React, Django 배포 - 프레임워크, 동작 과정 정리  (1) 2024.04.30