웹서버 vs WAS

웹서버 : 이미 만들어진 정적 파일을 그대로 내려주는 서버. HTML, CSS, JS, 이미지 같은 정적 콘텐츠를 요청받으면 디스크에서 읽어 그대로 응답. Nginx, Apache가 여기에 해당함.

WAS (Web Application Server) : 요청을 받아 코드를 실행해서 결과를 만들어 응답하는 서버. 동적 콘텐츠를 담당. Spring Boot 어플리케이션같은게 바로 WAS이고 내장 Tomcat이 그 역할을 담당.

두 서버를 같이 쓰는 이유

Tomcat도 정적파일을 서빙할수 있고, Nginx도 일부 동적 처리가 가능하지만 정적, 동적 파일을 모두 제공해야 하는 상황시 두 서버를 같이 쓰는 경우가 많음.

역할 분리 - 정적 파일은 Nginx가 빠르게 처리하고, WAS는 동적 로직에만 집중. WAS의 리소스를 아끼기 위햄. 예를 들어 이미지 요청 때문에 Tomcat 스레드가 소모되면 정작 중요한 주문 처리가 밀릴 수 있기 때문.

보안 - WAS를 외부에 직접 노출하지 않음. Nginx가 앞에서 방패 역할.

인터넷 → [Nginx] → [WAS(Spring Boot/Tomcat)] → [DB]
          앞단           애플리케이션

Nginx의 실제 용도