웹 서버와 웹 애플리케이션 서버
이 포스트는 김영한님의 ‘스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술’을 수강하고 작성하였습니다.
웹 서버 (Web Server)
- HTTP 기반
- 정적 리소스 제공, 기타 부가기능
- 예) NGINX, APACHE
웹 애플리케이션 서버 (WAS; Web Application Server)
- HTTP 기반
- 웹 서버 기능 + 애플리케이션 로직 수행
- 동적 HTML, HTTP API
- 서블릿, JSP, 스프링 MVC
- 애플리케이션 코드를 실행하는 데 특화
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS
- 예) 톰캣(Tomcat), Jetty, Undertow
웹 시스템 구성
WAS, DB
- WAS, DB 만으로도 시스템 구성 가능
- WAS는 정적 리소스, 애플리케이션 로직 모두 제공 가능
특징
- WAS가 너무 많은 역할을 담당 → 서버 과부화
- 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있음
- WAS 장애 시, 오류 화면도 안 나옴
Web Server, WAS, DB
- 웹 서버가 정적 리소스 처리
- 동적인 처리는 웹 서버가 WAS에 위임
- WAS는 중요한 애플리케이션 로직 처리 전담
특징
- 웹 서버는 잘 죽지 않음
- 정적 리소스만 제공하기 때문에 WAS, DB 장애 시 웹 서버가 오류 화면 제공
- 애플리케이션 로직이 동작하는 WAS 서버는 잘 죽음
댓글남기기