보통 웹 서비스는 아래의 그림처럼 Client ↔ Web Server ↔ WAS ↔ DB 이런식으로 요청 , 응답을 주고 받는다.
WAS만으로도 웹 서비스를 제공할 수 있는데 왜 앞에 Web 서버를 붙여 같이 사용하는걸까? 그 이유는 다음과 같다.
1. 성능 향상
웹 서버는 정적 콘텐츠(이미지, CSS, JavaScript 등)의 처리에 최적화되어 있다.
따라서 웹 서버가 정적 콘텐츠를 처리하고 웹 애플리케이션 서버는 동적 콘텐츠를 처리함으로써 각각의 서버가 자신의 전문 분야에서 최상의 성능을 발휘한다.
이를 통해 전체 서비스의 성능을 향상시킬 수 있다.
2. 캐싱 및 압축
웹 서버는 정적 리소스에 대한 요청을 캐시하고 압축하여 서비스 속도를 높이고 네트워크 대역폭 사용을 줄일 수 있다.
이렇게 함으로써 사용자에게 더 빠른 응답을 제공할 수 있다.
3. 로드 밸런싱
웹 서버는 로드 밸런서 역할을 할 수 있다.
백엔드에 여러 웹 애플리케이션 서버가 배포되어 있는 경우 웹 서버는 들어오는 요청을 각 서버에 분산시켜 서버 부하를 줄여 전체 서비스의 처리량이 높아지고, 가용성이 향상된다.
4. 보안
웹 서버는 리버스 프록시 또는 DMZ(비무장 지대) 역할을 하여 외부와 내부 네트워크를 격리시킬 수 있다.
이렇게 하면 공격자가 직접 웹 애플리케이션 서버에 접근하는 것을 방지하여 전체 서비스의 보안 수준을 높일 수 있다.
또한 웹 서버에서 SSL/TLS를 설정하여 HTTPS를 통한 암호화된 연결을 지원할 수 있다.
이를 통해 데이터 전송 속도를 높일 수 있고, 더 안전한 데이터 통신이 가능해진다.
지금까지 왜 Web Server와 WAS 서버를 분리해서 사용하는지에 대한 궁금증을 풀어보았다.
그렇다면 대표적인 웹 서버 중 Nginx, Apache가 있는데 왜 Nginx를 주로 사용하는지, Nginx가 무엇인지에 대해 알아보자.
'◼ CS 기초 지식 > [네트워크]' 카테고리의 다른 글
Tread Pool(쓰레드 풀)이란? (0) | 2023.03.22 |
---|---|
Web과 WAS란 ? 웹 서비스의 구조에 대해 알아보자 (1) | 2023.03.22 |
HTTP 메서드 종류 및 속성 (0) | 2023.03.20 |
HTTP란? 무상태성과 비연결성에 대해 알아보자. (0) | 2023.03.17 |
프록시 ( Proxy ) 란 ? 어떤 역할을 하는가? (1) | 2022.09.30 |