웹 서버(Web Server) & 웹 애플리케이션 서버(WAS)
웹 서버(Web Server)
- HTTP 기반으로 동작
- 정적 리소스 제공, 기타 부가기능 제공
- 정적(파일)HTML, CSS, JS, 이미지, 영상
- ex) NGINX, APACHE
웹 애플리케이션 서버(WAS)
- HTTP 기반으로 동작
- 웹 서버 기능 포함 + (정적 리소스 제공 기능)
- 프로그램 코드를 실행시켜 애플리케이션 로직 수행
- 동적 HTML, HTTP API(=REST API)(JSON)
- 서블릿, JSP, 스프링MVC
- ex) 톰캣, Jetty, Undertow
차이점
- 웹 서버는 정적 리소스 / WAS는 애플리케이션 로직
- 용어도 경계도 모호함
- 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS
- WAS는 애플리케이션 코드를 실행하는데 더 특화
❌ 웹 시스템 구성 (WAS, DB)
- WAS만으로도 웹 시스템을 구축할 수 있다. 하지만 WAS가 너무 많은 역할을 담당하므로 서버 과부하가 우려될 수 있다.
- 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다.
- WAS 장애시 오류 화면(404 에러 페이지)도 노출 불가능하다.
✅ 웹 시스템 구성 (WEB, WAS, DB)
- 정적 리소스는 웹 서버가 처리한다.
- 웹 서버는 동적인 처리가 필요하다고 판단하면, WAS에 요청을 위임한다.
- WAS는 중요한 애플리케이션 로직을 전담한다.
효율적인 리소스 관리
- 정적 리소스가 많아지면, Web 서버를 증설하면 된다.
- 애플리켕션 리소스가 많아지면, WAS를 증설하면 된다.