[TIL] 정말 간단히 Web server 이해해보기

Robin·2022년 8월 30일
0

개발상식

목록 보기
7/13

처음으로 백엔드로서 웹 프로젝트를 진행하게 됐다.

VM(Virtual Machine)에 접속하여 Nginx를 설치하라는데, 당최 이 친구가 뭘 하는지도 모른채 주구장창 설치만하다가 정말 많은 카오스를 맛봤다.

오피스아워를 통해 코치님으로부터 WAS(와스라고 읽는다)와 Web server의 개념을 접하게 되었다.

👉 참고영상: 10분 테코톡


Web Server

Web server
웹 브라우저(클라이언트)로 부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램

  • 클라이언트로 부터 HTTP 요청을 받을 수 있고,
  • 정적 콘텐츠 요청 시 Web Server 단계에서 제공해주고,
  • 동적 콘텐츠 요청 시 WAS로 전달하여 WAS가 처리한 결과를 클라이언트에 전달한다.

※ 정적 컨텐츠: 사용자가 달라지더라도 바뀌지 않는 컨텐츠 (ex) jpeg, html, css 등


WAS

WAS(Web Application Server)
DB조회나 다양한 로직처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 프로그램

  • 클라이언트로부터 HTTP 요청을 받을 수 있다 (대부분의 WAS는 Web Server를 내장하고 있음)
  • 요청에 맞는 정적 콘텐츠를 제공해주고,
  • DB조회나 다양한 로직 처리를 통해 동적 컨텐츠를 제공할 수 있다.

※ 오피스아워 코치님 왈,
지금 프로젝트에서 WAS 노드, Web server는 Nginx라고 말씀해주셨다.
- WAS는 DB에 접근하고 비즈니스 접근에 최적화
- Web server는 http에 최적화, 웹에 최적화


Web Server의 필요성

그럼, WAS가 다해주는데 Web server가 굳이 왜 필요할까?
Web server를 같이 사용했을 때의 장점이 뚜렷하기 때문이다.

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

  • 정적 콘텐츠: Web server가 담당
  • 동적 콘텐츠 : WAS가 담당해서 역할 분배
    설정모습

2. Web server의 로드밸런싱

로드 밸런서로서의 역할이 확실하다.
여러 요청을 여러 WAS가 나누어서 처리할 수 있도록 배분 및 설정해준다.


3. 여러대의 WAS Health check

로드밸런싱을 진행하다보면 특정 WAS에서 정상작동을 하지 않는 경우가 생긴다.
이때 Web server가 WAS에 주기적으로 http 요청을 보내며 서버의 상태를 체크한다.
이러한 기능을 Health check(헬스체크)라고 한다.
(ex) 특정 url 요청에 200 응답이 오는가?

Interval: 헬스 체크를 통해 서버 상태를 확인하는 요청을 날리는 주기(default: 5초)
Fails: 몇회 연속 실패하면 서버가 비정상이라고 인지(default: 1회)
Passes: 서버가 다시 복구되어 몇회 연속 성공하면 서버가 정상으로 인지(default: 1회)


4. 보안

리버스프록시를 통해 WAS(실제서버)를 외부에 노출시키지 않음으로써 보안성을 가져간다.


갈무리

이외에도 Web server는 정말 많은 기능을 제공한다. (ex. Nginx)
그러니 필요에 따라 내가 원하는 기능을 선택하여 사용하면 된다.

백엔드에 발을 들이고나니 정말 많은 개념들에 익숙해져야함을 체감한다.
이번엔 Web server의 정말 간단한 개념들을 훑어봤으니 아래와 같은 개념들을 추가로 찾아가며 확장시켜나가야겠다.

  • SSL 터미네이션: 클라이언트와는 https 소통, 서버와는 http 소통
  • Reverse Proxy
profile
Always testing, sometimes dog walking

0개의 댓글

관련 채용 정보