웹서버(WEB) 란?
•
클라이언트로부터 HTTP 요청을 받아 HTML 문서나 각종 리소스(Resource)를 전달
•
정적 리소스와 기타 부가기능을 제공
ex) NginX, Apache Server
기능 1
•
정적인 컨텐츠 제공
•
WAS를 거치지 않고 바로 자원을 제공한다.
기능 2
•
동적인 컨텐츠 제공을 위한 요청 전달
•
클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.
WAS(Web Application Server)란?
클라이언트로부터 웹서버가 요청을 받으면 애플리케이션에 대한 로직을 실행하여 웹서버로 다시 반환해주는 소프트웨어
•
DB 조회나 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server
•
Web container, Servlet Container 라고도 불린다.
•
Container란? - jsp, servlet을 실행시킬 수 있는 소프트웨어를 말한다.
WAS 기능
•
프로그램 실행 환경과 DB 접속 기능 제공
•
여러 개의 트랜잭션 관리기능
•
업무 처리하는 비즈니스 로직수행
ex) Tomcat, Websphere, Weblogic, Jeus, JBoss, Resin
Web Server 와 WAS를 분리한 형태
1. 기능을 분리하여 서버 부하 방지 가능
•
WAS는 DB 조회 등 페이지를 만들기 위한 다양한 로직을 처리하는데, 단순한 정적 콘텐츠를 WAS에서 제공한다면 다른 작업에 사용하는 리소스들로 인해 지연이 생겨날 수 있다.
•
tomcat 5.5 이상부터는 성능이 크게 떨어지지 않는다고 한다.
2. 물리적으로 분리하여 보안 강화
•
SSL에 대한 암복호화 처리에 Web Server를 사용한다.
•
공격에 대해 Web Server를 앞단에 두어 중요한 정보가 담긴 DB나 로직까지(WAS까지) 전파되지 못하게 한다.
3. 여러 대의 WAS를 연결이 가능하다.
•
Load Balancing(부하의 균등화) 가능 -> 한 서버가 다운되더라도 서비스를 이어갈 수 있다는 장점이 있다.
•
fail over(장애 극복), fail back 가능
•
대용량 웹 애플리케이션의 경우(여러 개의 서버 사용) Wev Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.