2018 - 06 - 18 (월)
- WAS 와 WEB SERVER의 차이
이미지 출처 : http://cybersecuritynews.co.uk/popular-web-application-attacks-and-recommendations/
Web 서버
Web 서버는 클라이언트가 웹 브라우저에서 서버에 페이지 요청을 하면 Web 서버에서 요청을 받아 정적 페이지(.html .jpeg .css 등..) 컨텐츠를 제공하는 서버 대표적인 WEB서버에는 Apache, NGINX 와 Windows 전용 Web 서버 인 IIS 가 있음
WAS (Web Application Server)
html 만으로는 할 수 없는 데이터베이스 조회나 다양한 로직처리 같은 동적인 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버 대표적인 WAS에는 Tomcat, Jeus, JBoss, Web Sphere 등이 있음
Web 서버를 반드시 구축해야하는 것은 아니다. 허나 WAS는 동적 컨텐츠를 제공하기 위해 존재하는 서버이기에 정적 컨텐츠 요청이 들어온다면 Web서버보다 수행속도가 느릴 수 밖에 없다. 이 때문에 Web서버를 앞에 두고 필요한 WAS 들을 Web서버에 플러그인 형태로 설정하여 효율적으로 처리되도록 한다.
Web 서버와 WAS 구성
-
주로 서버 구성 시 웹서버와 WAS를 분리하여 구성함.
-
웹서버는 정적인 웹리소스를 반환
-
WAS는 동적인 웹리소스를 반환
-
WAS 고전 버전에서는 정적 웹서버의 기능을 제공하지 않았었음.
-
최신 WAS의 경우 웹서버의 모듈을 포함하여 기능을 제공함.
-
그렇다면 왜 WAS와 웹서버를 분리하여야 하는가?
-
첫째로, 기능을 분리하여 서버 부하 방지
-
둘째로, 물리적으로 분리하여 보안강화
-
셋째로, 여러 대의 WAS를 연결 가능
-
이는 로드밸런싱의 역할 및 fail over, fail back 처리에 유리
-
넷째로, 여러 웹어플리케이션을 서비스 가능
-
즉 java서버, c# 서버, php서버 등 하나의 웹서버를 통해서 서비스 가능
Web 서버와 WAS 의 분리
- 이 부분은 앞으로 내가 경험해가야할 부분이다. 기존에 본인이 생각한 배포는 AWS 든 어떠한 서버를 이용하여 그 환경에 이클립스 실행후 톰캣 실행을 하는 것이었다. 하지만 이러한 이론은 틀린답이었다. 앞서 설명한 웹서버와 WAS 의 차이처럼 HTTP REQUEST를 톹해 요구받은 사항이 STATIC / DYNAMIC 한지에 따라 처리하는 영역이 달라질 수 있으며 이는 어찌보면 성능상 중요한 부분이라고 할 수 있다.
다음 개인프로젝트 배포는
WAS 와 웹서버를 분리하여 시도하고자 한다.