Web (vs) WAS

horiz.d·2023년 5월 12일
0

웹 서버

웹 클라이언트의 요청을 받아, 요청을 처리 및 그 결과를 웹 클라이언트에게 응답한다.

주로 정적 페이지인 HTML, 이미지, CSS JS파일을 웹 클라이언트에 제공할 때 웹 서버를 사용. 만일 동적 페이지 처리가 필요하면 WAS(웹 애플리케이션 서버)에 처리를 위임한다.

ex. NGINX, 아파치 httpd, lighttpd, IIS 등

웹 애플리케이션 서버 (WAS)

웹 서버로부터 동적 페이지 요청을 받아, 요청을 처리 및 그 결과를 웹서버에 응답한다.

주로 동적 페이지 생성을 위한 프로그램 실행과 데이터베이스 연동 기능을 처리.

ex. Unicorn, 아파치 톰캣, Jetty, Jeus, JBoss, 웹로직, 웹스피어 등



애플리케이션 서버 방식

CGI 방식의 대안으로, 애플리케이션 서버 방식을 사용할 수 있으며, 그 모습은 아래와 같을 것이다.

Django 웹 애플리케이션 구조 예시

ref: https://jinwoo1990.github.io/dev-wiki/web-application/


Django는 WAS의 일종으로 DB 조회 등 다양한 로직 처리 및 동적인 컨텐츠 제공을 위해 어플리케이션을 수행해주는 미들웨어라고 생각할 수 있다.

Django는 혼자서는 웹서버를 구동할 수 없는데, django에서 제공하는 runservver는 개발용으로 제공되는 경량 웹 서버로, 실제 production용으로는 적합하지 않기 때문.

실제 Django APP 서비스를 위해서는 NginX, Apache 등의 웹서버를 사용하고, 그 웹 서버와 Django 어플리케이션을 연결해주는 Gunicorn, uWSGI등의 WSGI(Web Server Gateway Interface)를 이용해 배포해야 한다.

  • wsgi?
    - WSGI는 python application(python script)이 웹 서버와 통신하기 위한 표준 인터페이스이며, 파이썬 프레임워크이다.
profile
가용한 시간은 한정적이고, 배울건 넘쳐난다.

0개의 댓글