웹 서버 vs 웹 어플리케이션 서버(WAS)
웹 서버 vs 웹 어플리케이션 서버(WAS)
웹 서버
웹 서버 는 정적 컨텐츠(HTML, CSS, JS, Image, … etc) 를 제공하는 역할을 수행한다. 동적 컨텐츠를 요청하면 그 요청을 WAS로 전달할 수도 있다. 대표적인 웹 서버로 Apache
, Nginx
등이 있다.
웹 어플리케이션 서버 (WAS)
웹 어플리케이션 서버 (Web Application Server) ** 는 자바같은 경우엔 서블릿 컨테이너 기능을 제공하고, 동적 컨텐츠를 생성하거나, 어플리케이션 로직을 실행하는데 특화되어있다. 대표적인 WAS로 **Tomcat
이 있다.
즉 Web Server는 정적 컨텐츠 제공에 특화되어있고, WAS는 동적인 컨텐츠 생성과 데이터 처리에 특화되어 있다.
WAS에서 정적 컨텐츠를 제공하지 않고 웹 서버를 따로 두는 이유
WAS의 역할에 집중시키기 위해서다. WAS에 너무 많은 역할을 부여하면 서버가 과부화될 수 있다. 웹 서버를 따로 분리하면 WAS는 어플리케이션 중요 로직에 집중할 수 있고, 웹 서버는 정적 리소스를 처리하면서 업무 분담이 가능하다. 또한, 시스템 자원을 효율적으로 관리할 수 있다. 정적 컨텐츠가 많이 사용되는 경우 웹 서버를 증설하고, 어플리케이션 자원이 많이 사용되는 경우는 WAS를 증설하면 된다. 이외에도 로드 밸런싱을 하거나, 캐싱/압축, HTTPS 등을 웹 서버에서 처리하게 할 수도 있다.
References
This post is licensed under
CC BY 4.0
by the author.