웹서버와 WAS는 클라이언트로부터 온 요청을 처리하는 데서 서로 다른 역할을 한다. 웹서버와 WAS를 분리하면 자원 이용의 효율성 및 장애 극복, 배포 및 유지 보수의 편의성 등의 장점이 있다.
웹서버
- 하드웨어: 웹 서버의 소프트웨어와 웹사이트의 컴포넌트 파일(html, css, javascript, 이미지)을 저장하는 컴퓨터
- 소프트웨어: 클라이언트로부터 http 요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램
➡️ 웹 서버의 종류: 아파치, NginX 등
WAS(Web Application Server)
WAS는 웹서버와 웹 컨테이너가 합쳐진 개념이다. 정적인 컨텐츠 외에 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해서 만들어졌다. http 프로토콜을 기반으로 컴퓨터나 장치에 애플리케이션을 수행하게 해 주는 미들웨어라고 할 수 있다.
➡️ WAS의 종류: 톰캣 등
웹서버와 WAS를 분리하는 이유
- 기능 분리
- 단순 정적 컨텐츠는 웹서버가 빠르게 클라이언트에게 제공하고 WAS가 DB 조회, 로직 처리를 맡는다.
- 보안 강화
- 웹서버와 WAS 사이에 방화벽을 두어 보안을 강화할 수 있다.
- 분산 처리
- 여러 대의 WAS를 연결해 로드밸런싱을 할 수 있다.
- 장애 대응 시에도 오류가 발생한 WAS 대신 다른 WAS가 분산 처리를 함으로써 무중단 운영을 할 수 있다.
리버스 프록시
웹서버와 WAS를 분리하는 이유는 웹서버를 리버스 프록시로 이용할 수 있다는 점도 있다. 리버스 프록시는 클라이언트의 정보를 감추는 포워드 프록시와 반대로 서버 내부의 정보를 감춘다. 서버 내부적으로 파일이 어느 폴더에 들어 있는지, 서비스가 몇 번 포트로 돌고 있는지 등을 감출 수 있다.
참고 자료