WEB 서버와 WAS의 차이

2023. 11. 13. 23:50기술공부

웹 서버(Web Server)

웹 서버란 HTTP프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 단순 HTML문서, CSS,이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.

이 과정에서 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고 WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다.

 

ex) Apache, Nginxe등

 

WAS(Web Application Server)

DB조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버이다. HTTP프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터 베이스 서버와 같이 수행된다.

WAS는 JSP, Servlet구동환경을 제공해주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너로 불린다.

 

이러한 WAS는 웹 서버의 기능들을 구조적으로 분리하여 처리하고자 하는 목적으로 제시되었다. 여러 기능을 처리하는 분산 환경에서 사용된다. DB를 관리하며 여러개의 트랜잭션을 관리 가능하다. 또한 비즈니즈 로직을 수행할 수 있다.

 

ex) Tomcat, JBoss, WebSphere등

 

WAS가 웹 서버의 기능을 수행할 수 있지만 웹 서버와 WAS를 분리해야하는 이유

 

1) 서버 부하 방지

로직처리 -> WAS

단순한 정적 컨텐츠 -> Web Server

 

2) 보안 강화

SSL에 대한 암호화, 복호화 처리에 웹 서버 사용 가능

 

 

3) 여러대의 WAS연결 가능

로드 밸런싱을 위해 웹 서버를 사용할 수 있다.

대용량 웹 어플리케이션의 경우 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

 

# 여기서 과도한 사용자에 의한 부하와 과도한 로직에 의한 부하의 로드밸런싱 방법이 같을까??

 

사용자에 의한 부하는 L4스위치를 활용하여 요청들을 분산하는 웹서버 로드밸런싱을 사용한다.

*L4란 OSI 7계층에서 전송계층으로 포트 기반으로 패킷을 처리한다.

 

로직에의한 부하는 WAS 로드밸런싱을 사용한다. ex) 하나의 Apache에 Tomcat여러개를 배치하여 로드밸런싱을 한다.

 

4) 여러 웹 어플리케이션 서비스 기능

하나의 서버에서 PHP, JAVA애플리케이션을 함께 사용할 수 있다.

 

 

Client -> Web Server -> WAS -> DB

 

 

'기술공부' 카테고리의 다른 글

@NoArgsConstructor(access=Level.PROTECTED)  (0) 2023.11.26
AOP(Aspect Oriented Programming)/Spring  (1) 2023.11.20
쿠키와 세션 그리고 jwt  (0) 2023.11.05
매트릭 데이터 수집  (0) 2023.01.11
Docker  (0) 2023.01.11