
가장 오래되고 널리 사용된 웹 서버
모듈 기반 확장 구조
PHP, Perl 등과의 연동이 쉬움
설정이 유연하지만, 무겁고 복잡할 수 있음
경량화된 웹 서버 + 리버스 프록시 역할
비동기/이벤트 기반 처리로 고성능
정적 파일 처리에 매우 강함
로드밸런서, 프록시 서버로도 많이 사용됨
Java 기반 동적 웹 애플리케이션을 실행하는 서버
JSP/Servlet 실행 가능
Apache와 함께 사용되기도 함 (Apache가 요청을 받고, Tomcat으로 전달)
클라이언트 요청을 받아 동적 처리 (예: 로그인, DB조회)
비즈니스 로직 수행
HTML, JSON, XML 등 응답 생성

[사용자 브라우저]
↓
[웹 서버: Nginx, Apache]
↓ (프록시, 로드밸런싱)
[WAS: Tomcat, Spring Boot]
↓
[DB: MySQL, PostgreSQL]
클라이언트 앞에 위치
사용자의 요청을 대신 외부로 전달
🔍 보안, 익명성 확보, 기업 내부망에서 주로 사용
서버 앞에 위치
클라이언트 요청을 받아 내부의 WAS나 백엔드 서버로 전달
🔍 Nginx, Apache가 리버스 프록시로 자주 사용됩니다
✅ 장점:
보안 (WAS 노출 차단)
로드 밸런싱 가능
SSL 종료 처리 가능
캐싱 및 압축 처리 가능
클라이언트의 요청을 여러 서버에 분산시켜서 트래픽을 나눔
서버 부하 분산 → 성능 향상 & 장애 대응 가능
✅ 방식 종류

✅ 로드 밸런서 역할 예시
Nginx를 로드밸런서로 설정
api.myapp.com 요청을 내부 3개의 WAS로 분산
[사용자]
↓
[Nginx (리버스 프록시 + 로드밸런서)]
↓ ↓ ↓
[WAS1] [WAS2] [WAS3]

웹 서버는 정적인 입구, WAS는 동적인 작업실, 프록시는 경비원, 로드밸런서는 안내자!