웹 서버와 WAS

2022. 1. 2. 17:08TIL

웹 서버란?


웹 서버는 클라이언트가 웹 사이트에 어떤 요청을 보내면 그에 적절한 응답을 해주는 존재이다. 소프트웨어일 수도 있고 소프트웨어가 실행되는 컴퓨터일 수도 있다. NginX, Apache는 대표적인 웹 서버(Web Server) 소프트웨어이다.

  •  특징
    • 웹 브라우저와 같은 클라이언트로 부터 HTTP 프로토콜로 요청을 받으면 그에 맞는 HTML 문서 등과 같은 정적 파일을 응답해 준다.
      • 정적 파일이란 말 그대로 멈춰있는 파일(html, css, js) 즉, 변하지 않는 파일 그 자체이다.
        • Ex) 로그인 하기 전의 쿠팡 웹 사이트(어떤 유저가 쿠팡 웹 사이트를 요청했는지 알 수 없기 때문에 쿠팡에서 기본으로 제공하는 HTML, CSS, Javascript 등의 파일이 제공)
      • 반대로 동적 파일은 게시판처럼 새로운 글이 올라왔을 때 보여지는 화면이 달라지는, 즉, 사용자의 요청에 대해 변할 수 있는 파일이다.
        • Ex) 로그인을 하고 난 후의 쿠팡 웹 사이트(로그인을 하고 나면 해당 유저가 자주 검색한 물건, 상품을 토대로 추천 상품이 뜨기 때문에 유저별 서비스되는 데이터가 다르게 나타난다.)

 

WAS란?


WAS(Web Application Server)는 웹 서버와 비슷하지만 웹 서버와는 다르게 동적 파일을 제공해 준다. 대표적인 WAS로 Tomcat, Jeus, JBoss 등이 있다.

  • 특징
    • 웹 서버로부터 요청이 오면 컨테이너가 요청을 받아서 처리한다. 
    • 대부분 WAS에서 정적 파일도 함께 처리할 수 있다.
    • 따라서 웹 서버를 사용하지 않고 WAS만을 이용하여 웹 서버를 구축할 수 있다.

 

웹 서버와 WAS를 분리하는 이유


WAS가 웹 서버의 역할까지 가능하다. 실제로 웹 서버를 두지 않고 WAS만으로 웹 구동이 가능하다. 그런데도 웹 서버와 WAS를 분리하는 이유는 무엇일까?
  1. WAS의 부담을 덜어주기 위함이다.
    • WAS혼자만 있으면 정적, 동적 파일들을 전부 처리해야 한다. 아무리 일 잘하는 친구가 A, B, C 라는 업무를 다 할 수 있다고 하더라도 옆에 도와주는 친구가 A 업무를 대신 해주면 부담을 덜 수 있다.
    • 서버의 부하가 발생하는 것을 방지할 수 있다.
  2. 보안 강화
    • 물리적으로 분리되어 있으면 보안적으로 더 유리하다. 
    • 민감한 WAS 정보(기기 id, MAC 주소 등)를 웹 서버가 숨겨준다.
    • HTTPS의 인증서를 제공해 줌으로써 SSL을 지원한다.
  3. 하나의 웹 서버에 여러 WAS를 연결할 수 있다.
    • 하나의 웹 서버에 여러 WAS를 연결하여 로드 밸런싱 역할을 해준다.
    • 하나의 Application Server에 오류가 발생했을 경우 웹 서버에서 해당 앱 서버를 사용하지 못하도록 막고 다른 앱 서버와 통신하는 방식으로 사용자가 오류를 느끼지 못하고 이용할 수 있는 무중단 운영이 가능하다.

이 외에도 다양한 이유가 존재하지만 이 세가지 경우가 가장 큰 이유라고 봐도 무방하다.

 

다음 포스팅에서는 NginX에 대해 올려보도록 할 것이다.

반응형

'TIL' 카테고리의 다른 글

[성능 테스트] 성능테스트 기본 지식  (0) 2022.07.04
[Python] os.system VS subprocess  (0) 2022.06.03
NginX와 Gunicorn  (0) 2022.01.03