웹 서버 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://velog.io/@deannn/Apache%EC%99%80-NginX-%EB%B9%84%EA%B5%90-%EC%B0%A8%EC%9D%B4%EC%A0%90
'Development > Network & Web' 카테고리의 다른 글
[Network] FTP (File Transfer Protocol) & SFTP (File Transfer Protocol) (0) | 2023.03.06 |
---|---|
[Network] 프록시(proxy)란? 포워드 프록시(forward proxy), 리버스 프록시(reverse proxy) (0) | 2023.01.29 |
[WEB] REST API 개념 정리 (0) | 2023.01.16 |