WEB 서버
클라이언트의 HTTP 요청을 받아, 미리 준비된 정적인 파일을 그대로 제공
별도의 연산 없이 요청 → 파일 찾기 → 응답 순으로 처리됨
Client → [요청: /index.html] → Web Server → 파일 읽기 → 응답
- 단순 HTML 페이지
- CSS
- JavaScript 파일
- 이미지
대표적인 소프트웨어로는 Nginx, Apache HTTP Server가 있다.
WAS (Web Application Server)
사용자의 입력에 따라 결과가 달라지는 동적인 콘텐츠를 생성하여 제공
Client → [요청: /users/123] → WAS → DB 조회 + 로직 실행 → 동적 응답 생성
- 데이터베이스에서 데이터 조회
- 자바 코드로 복잡한 계산 수행
대표적으로는 Tomcat이 있다.
왜 Web서버 + WAS를 함께 사용할까

- 성능측면: 정적파일을 WAS까지 보내면 낭비이기 때문에 Nginx가 빠르게 처리함
- 보안측면: WAS를 외부에 직접 노출하지 않음 (Nginx가 Reverse Proxy 역할을 해줌)
- 부하 분산: Nginx 하나 뒤에 WAS 여러 대를 붙여 로드벨런싱이 가능함
현재 내가 진행하고 있는 프로젝트 구조에 적용해보면
현재 프로젝트 구조도는 아래와 같다
Internet → Cloudflare → Nginx (Ubuntu) → Spring Boot (Ubuntu)
- Cloudflare : 트래픽 관문 역할, Nginx 앞단에서 방어 역할을 담당
- Nginx : Web Server의 역할을 한다. 정적 파일 서빙 + Spring boot로 넘기는 Reverse Proxy 역할을 함
- Spring Boot : WAS이다. 내장 Tomcat을 품고 있다.
'WEB' 카테고리의 다른 글
| Maven이란? (feat. Gradle과의 차이) (0) | 2026.04.22 |
|---|