[ETC] Web Server & WAS(Web Application Server

2022. 1. 25. 21:04etc

오늘도 반성하는 마음으로 블로그 포스팅을 하려고 한다 :(

Web Server?? WAS?? 는 그만하고 정확하게 짚고 기본기 부터.. 라는 생각을 가지며..

 

Web Server

| Apache, Nginx
웹 브라우저 즉 클라이언트 로 부터 HTTP 요청을 받아와 정적 컨텐츠를 제공하는 프로그램을 뜻한다.

정적 컨텐츠
 : 요청 인자 값에 상관없이 달라지지 않는 컨텐츠이며 

  쉽게 말해 어느 사용자 요청이든 항상 동일한 컨텐츠를 의미 한다.
 ex) html, css, image, javaScript ...

 

기능

- 클라이언트로부터 HTTP 요청을 받을수 있다.

이때 정적 컨텐츠 일 경우, 컨텐츠를 바로 제공

동적 컨텐츠 일 경우 WAS(Web Application Server) 에게 전달하여 처리한 결과를 클라이언트 에게 전달한다. 

 

WAS(Web Application Server)

| Tomcat, Jeus, JBOSS 

동적인 컨텐츠를 제공하기 위해 만들어진 프로그램 이다.

동적 컨텐츠
 : 요청 인자에 따라 바뀔 수 있는 컨텐츠

 

기능

- 대부분의 WAS 는 Web Server 가 내장되어 있어 클라이언트로부터 HTTP 요청을 받을수 있다.

- WAS의 기능과 마찬가지로 요청에 맞는 정적 컨텐츠 를 제공할 수 있다.

- DB 조회 혹은 로직이 필요한 동적인 컨텐츠를 제공한다.

 

 

그렇다면..? 왜 Web Server 와 WAS 를 분리하여 사용하는것 인가?

WAS가 클라이언트의 HTTP 통신도 가능하며 정적 컨텐츠 또한 제공이 가능하다면

Web Server 를 따로 사용안해도 되는것 아닌가?

 

결론 부터 말하면 WAS 만으로 서비스가 가능하다

 

하지만 이제부터 Web Server를 같이 사용하는 이유에 대해 정리해 보고자 한다.

 

Web Server를 활용할 경우 장점

 

1. 책임 분할을 통한 서버 부하 방지가 가능하다
    - 정적 컨텐츠는 Web Server, 동적 컨텐츠는 WAS

2. 로드밸런싱이 가능하다.
    - WAS가 처리해야 하는 요청을 여러 WAS가 나누어서 처리할 수 있도록 한다.
      이로써 가용성 및 응답시간을 최적화 시킬 수 있다.

3. WAS Health check
   - WAS 를 관리를 하기위해 서버에 주기적으로 HTTP 요청을 보내 서버의 상태를 확인할수 있다. 

4. 보안
   - 리버스 프록시를 통해 실제 서버를 외부에 노출하지 않을 수 있다.

   *리버스 프록시 : 클라이언트가 서버를 호출할 때 리버스 프록시를 호출하게 되고 

     이를 통해 실제 서버를 노출하지 않고 응답이 가능하다.

 

 

참고

  • https://www.youtube.com/watch?v=mcnJcjbfjrs