본문 바로가기

Development/Network & Web

[WEB] 웹서버 vs WAS

웹 서버 VS WAS

정적인 데이터는 웹 서버에서, 동적인 데이터는 WAS에서 처리하는 것이 권장된다.

◽ 정적 : 있는 그대로 제공되는 것 (served as-is)

◽ 동적 : 서버가 컨텐츠를 처리하는 것, 컨텐츠를 데이터베이스로부터 생성하는 것

웹 서버

: 주로 HTTP 프로토콜을 이용하여 정적인 웹페이지를 보여주는 역할을 하는 서버를 의미

 - 사이트 규모에 따라 웹 서버의 역할을 WAS가 포함하는 경우도 존재하지만, 대부분의 환경에서 웹 서버는 WAS 앞 단에 위치하여 정적인 컨텐츠 처리 및 로드 밸런싱을 담당하는 역할을 함

 

웹 서버 프로그램 (= '웹 서버')

: HTTP 프로토콜을 이용하여 웹페이지를 보여주는 역할을 하는 프로그램

 

🔹 웹 서버의 공통된 기능

1. Virtual hosting (가상 호스팅) : 하나의 IP주소를 사용하는 많은 웹사이트들을 지원

2. Large file support : 32bit OS에서 2GB이상의 파일을 지원

3. Bandwidth throttling (대역폭 조절) : 네트워크의 포화상태를 방지하기 위한 응답 속도 제한

3. Server-side scripting (서버측 스크립팅) : 웹서버 단에서 실행되는 동적 웹 페이지 생성 언어 지원

Apache - 오픈소스 소프트웨어로 Apache 재단에서 만들어진 웹 서버
- Java Servlet을 지원하며, 실시간 모니터링, 자체 부하 테스트 등 여러 기능 제공
NGINX - Apache의 C10K 문제점 해결을 위해 만들어진 Event-Driven 구조의 웹 서버 소프트웨어
- 리버스 프록시, 로드밸런스, http 캐시 등 다양한 기술을 제공하는 웹 서버 프로그램

 

웹 어플리케이션 서버 WAS

: 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어

 - 동적 서버 컨텐츠를 수행하며, 주로 데이터베이스 서버와 같이 수행

 - EX. Apache Tomcat 

 

구조 예시

1) 첫번째 이미지 - 기본적인 웹서비스 구성
웹 사이트의 가장 기본적인 구성 환경으로, 모든 콘텐츠를 한 곳에 집중시켜 웹 서버와 WAS의 역할을 동시에 수행한다. 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행하고, 필요시 WAS를 증설할 수 있는 구조이지만 WAS가 정적인 데이터와 동적인 데이터의 처리를 동시에 수행하기 때문에 최적화 측면에선 바람직하지 않다.

2) 두번째 이미지 - 웹 서버와 WAS로 구성된 환경

웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태이다. 정적인 데이터는 구조적으로 앞에 존재하는 웹 서버에서 처리하고, 동적인 데이터는 뒷단의 WAS가 처리한다.

3) 세번째 이미지 - 특정 기능에 대한 서버를 별도로 두고 있는 환경

이 그림은 이미지 서버를 별도로 두고 있는 환경에 대한 구성이다. UI가 화려해지며 이미지 비중이 증가한 경우, 이미지 서버를 따로 구성해 네트워크 비중도 줄이면서 웹 서버와 WAS를 좀 더 효과적으로 사용할 수 있는 구조라 할 수 있다.

 

 

 

 

 

< 참고 >

https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server

https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=52353 

https://itwiki.kr/w/%EC%9B%B9_%EC%84%9C%EB%B2%84

https://itwiki.kr/w/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84

https://velog.io/@deannn/Apache%EC%99%80-NginX-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4%EC%A0%90