[우아한테크코스] Webserver와 WAS

kimjingwon·2023년 6월 27일
0
post-custom-banner

WebServer

웹서버란?

  • http프로토콜을 사용해 송수신하는 서버

http프로토콜이란?

  • 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종으로, 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지를 정해 놓은 규칙이다.
  • 요청(Request)과 응답(Response)으로 구성되어 있으며, 일반적으로 80번 포트를 사용한다.
  • 우리가 사용하는 웹 브라우저에서 인터넷 주소 맨 앞에 들어가는 http://가 바로 이 프로토콜을 사용해서 정보를 교환하겠다는 표시이다.

웹 페이지

정적페이지

누가 어디서 접속하든 항상 똑같은 페이지

과정

  1. http://www.exemple.com/exemple.html

  2. 웹서버는 해당 exemple.html 파일이 서버내에 있는지 확인한다.

  3. 해당 파일을 찾아서 응답한다.

동적페이지

과정

  1. http://www.youtube.com/accont

  2. 웹서버는 웹컨테이너한테 요청을 넘겨준다.

  3. 웹컨테이너는 요청주소에 맞는 서블릿(자바)을 찾아서 프로그래밍을 진행한다.

  4. 결과로 나온 데이터를 템플릿엔진에 반영한 새로운 웹페이지를 돌려준다.

WAS

WAS란

클라이언트 <-> 웹서버 <-> 웹컨테이너 <-> DB
여기서 웹서버와 웹컨테이너를 포함해서 WAS라고 한다.

WAS의 기능

WAS가 웹서버와 웹컨테이너를 포함하기에
클라이언트의 동적 요청과 정적요청 둘 다 받고 수행할 수 있다.

위험

WAS 하나로 동적, 정적의 책임을 수행하면 위험하다.

why?

웹서버와 웹컨테이너로 만들어진 하나의 WAS로 운영하는 애플리케이션의 경우

트래픽이 크다면 과부하가 걸린다.

정적요청은 가볍기때문에 과부하가 걸리지않고
동적요청에서 웹컨테이너에서 과부하가 걸리기 쉽다.

그렇기 때문에 다음과 같은 방법으로 부하를 해결한다.

방법

  1. WAS에서 웹서버를 분리한다.

  2. 웹컨테이너만 가지고 있는 WAS만 증설한다.

  3. 웹서버와 다수의 WAS를 연결한다.

웹서버는 그때부터 다음과 같은 역할을 수행하게된다.

  1. 캐싱
  2. 로드밸런싱
  3. health check
  4. 리버스 프록시
post-custom-banner

0개의 댓글