실무에서 흔히 Nginx와 Spring 혹은 Node.js 서버를 함께 사용한다.
이 둘은 어떤 역할을 나눠서 담당하고 있을까?
역할 분리의 이유
- 웹서버(Nginx) 는 요청과 응답을 빠르게 처리하고, 정적 파일을 제공한다.
- WAS(Spring, Node.js) 는 DB 조회, 인증, 계산 등 비즈니스 로직을 처리한다.
- 트래픽이 많을수록 모든 요청을 WAS가 처리하면 부하가 커지고 비효율적이다.
- 따라서 웹서버가 앞단에서 가볍게 처리하고, 복잡한 요청만 WAS로 넘긴다.
역할 비교
구분 | 웹서버 (Nginx) | WAS (Spring, Node.js) |
---|---|---|
역할 | 요청/응답 처리, 정적 파일 제공 | 동적 요청 처리, 비즈니스 로직 수행 |
예시 | HTML, CSS, JS, 이미지 응답 | 로그인, 결제, DB 조회 |
특징 | 빠르고 가벼움 | 자원 소모 큼, 연산 복잡 |
기타 | 리버스 프록시, 로드밸런싱, 압축 등 | API 처리, 트랜잭션 처리 등 |
구조 예시
사용자
↓
Nginx (웹서버)
↓
Spring / Node.js (WAS)
↓
DB, 외부 API 등
업로드테스트