개발 노트/주절주절

웹서버와 WAS

hectick 2023. 9. 25. 22:33

정적 콘텐츠와 동적 콘텐츠

정적 콘텐츠로 구성된 정적 페이지는 웹서버에 의해 처리된다.

  • 웹서버는 웹서버에 이미 저장되어있는 파일을 단순 반환
  • 정적 콘텐츠: HTML, CSS, JavaScript, 이미지 등
  • 정적 페이지: 고정된 정적 콘텐츠로 구성된 웹 페이지

 

동적 콘텐츠로 구성된 동적 페이지는 WAS에 의해 처리된다.

  • 웹서버는 요청을 WAS로 전달하여 애플리케이션 로직에 따라 동적으로 생성된 콘텐츠를 반환
  • 동적 콘텐츠: 사용자의 요청을 처리하고, 데이터베이스나 외부서비스들과 상호작용하며 동적으로 생성된 콘텐츠
  • 동적 페이지: 사용자의 요청에 따라 서버에서 동적으로 생성되는 페이지

 

웹서버(Web Server)

예를들면 nginx가 있다. 

웹서버는 클라이언트로부터 http 요청을 받고 응답을 보내는 역할을 하며,

클라이언트가 정적 콘텐츠 요청시 정적 콘텐츠를 제공하고, 동적 콘텐츠 요청시 요청을 WAS에 전달하여 WAS가 처리한 결과를 전달한다.

 

WAS(Web Application Server)

예를 들면 톰캣이 있다.

WAS는 보편적으로 웹서버를 가지고 있기 때문에 WAS만으로도 서비스 정상 동작 가능하다.

 

서비스의 확장성과 안정성을 고려하면, WAS의 앞단에 웹서버를 두는 것이 유리하다.

 

1. 책임 분할을 통한 서버 부하 방지

 

2. 여러대의 WAS 로드밸런싱

  • 로드밸런싱: 여러 서버로 구성된 시스템에서 일부 서버가 과부하되거나 장애가 발생하는 상황을 대비하여 트래픽을 분산시키는 것
  • 요청을 여러 WAS가 나누어 처리할 수 있도록 설정
  • Health check: 서버에 주기적으로 http 요청을 보내 서버의 상태를 확인(특정 WAS가 제대로 동작하는지 확인)

 

3. 보안: WAS는 DB에 접근하는 로직이 존재하니, 그 앞단에 웹서버를 두어 DB를 외부로 노출 시키지 않을 수 있다.