웹 서버는 대충 서버인 것 같은데 WAS는 또 뭐람? AWS는 아는데;
사실 CS에서의 웹 서버는 사람들이 알고 있는 '서버' 랑은 살짝 다르다.
Web Server
HTTP 프로토콜을 기반으로 웹 브라우저에서 사용자가 요청한 정적 콘텐츠(HTML, CSS, JavaScript, 이미지 등)를 제공하는 역할
주요 기능 및 역할:
- 사용자의 HTTP 요청을 받아들이고, 적절한 HTTP 응답을 반환해줌
- 정적 콘텐츠 제공
- SSL/TLS를 통한 암호화 통신 지원
- 로드 밸런싱 기능을 제공하여 다수의 WAS에 요청을 분산시킴
- 대표적인 웹 서버 - Apache, Nginx, IIS 등
Web Application Server
동적 콘텐츠를 처리하기 위해 사용되며, 웹 애플리케이션의 비즈니스 로직을 실행하는 역할
개발자들이 사용하는 Spring, Node.js, Django 속에 WAS가 포함되어 있다고 보면 된다.
주요 기능 및 역할:
- 서블릿, JSP, ASP.NET 등의 웹 애플리케이션 로직 실행
- 데이터베이스 연결 및 트랜잭션 관리
- 세션 관리, 캐싱, 메시지 큐 처리 등의 부가 서비스 제공
- 대표적인 WAS - Tomcat, JBoss, WebSphere, WebLogic 등
웹 서버와 WAS의 차이점
- 콘텐츠 유형:
- 웹 서버: 주로 정적 콘텐츠 처리
- WAS: 주로 동적 콘텐츠 처리
- 비즈니스 로직 처리:
- 웹 서버: 비즈니스 로직 처리 없이 파일을 그대로 전달
- WAS: 비즈니스 로직을 처리하여 결과를 동적으로 생성 후 전달
- 성능 및 확장성:
- 웹 서버: 대량의 요청과 정적 콘텐츠를 효율적으로 처리
- WAS: 동적 콘텐츠 처리에 최적화되어 있으며, 추가적인 기능 제공
Reverse Proxy
클라이언트와 서버 간의 통신을 중계하고 보안, 성능 개선 등의 목적을 위해 중간에 위치하는 서버
포워드 프록시와 리버스 프록시의 차이
포워드 프록시는 또 다른 외부(다른 컴퓨터) 서버로 요청을 보내주고,
리버스 프록시는 내부(같은 컴퓨터)의 다른 서버로 요청을 보내준다.
리버스 프록시의 주요 기능
- 로드 밸런싱:
- 여러 대의 서버가 있을 때, 리버스 프록시는 들어오는 요청을 여러 서버에 분산시켜 부하를 관리(HTTPS)
- 보안:
- 클라이언트와 실제 처리 서버 사이에 리버스 프록시를 두어 실제 서버의 정보를 숨길 수 있으며, 일종의 방화벽 역할
- SSL/TLS 종료:
- 리버스 프록시에서 SSL/TLS 연결을 종료하고, 내부 네트워크는 암호화되지 않은 연결로 통신
- 캐싱:
- 리버스 프록시는 서버의 응답 결과를 일시적으로 저장해두고, 동일한 요청이 들어올 때 캐시된 데이터를 제공하여 서버의 부하를 줄일 수 있다
- 글로벌 서버 로드 밸런싱:
- 리버스 프록시를 사용하여 지리적으로 분산된 여러 데이터 센터의 서버에 요청을 분산시킴