728x90
1. Web Server란?
- 웹브라우저(클라이언트)로부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램
2. Web Server의 기능
- 클라이언트가 정적 컨텐츠 요청시, 정적 컨텐츠를 제공
- 클라이언트가 동적 컨텐츠 요청시, Web Application Server(WAS)로 전달, WAS가 처리한 결과를 클라이언트에 전달
3. Web Application Server(WAS)란?
- DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 프로그램
4. WAS의 기능
- 클라이언트로 부터 HTTP요청을 받을 수 있다. (대부분의 WAS는 Web Server를 내장하고 있다.)
- 요청에 맞는 정적 컨텐츠(html,jpeg,css...)를 제공
- DB조회 혹은 다양한 로직 처리를 통해 동적 컨텐츠를 제공
5. WAS가 다 해주는데 Web Server가 왜 따로 필요한가?
<책임분할을 통한 서버 부하 방지>
- 정적 컨텐츠는 Web server, 동적 컨텐츠는 WAS가 담당
<여러 대의 WAS 로드밸런싱>
- WAS가 처리해야 하는 요청을 여러 WAS가 나누어서 처리할 수 있도록 설정
<여러 대의 WAS Health check>
- WAS가 처리해야 하는 요청을 여러 WAS가 나누어서 처리할 수 있도록 설정
<보안>
- 리버스 프록시를 통해 실제 서버를 외부에 노출하지 않을 수 있다.
* Health check란?
- 서버에 주기적으로 HTTP 요청을 보내 서버의 상태를 확인(url요청에 200응답이 오는지)
- Interval, Fails, Passes 사용
- Interval : health check를 통해 서버 상태를 확인하는 요청을 날리는 주기(default:5초)
- Fails: n회 연속 실패하면 서버가 비정상이라고 인지 (default: 1회)
-passes: 서버가 다시 복구되어 요청이 n번 연속 성공하면 서버가 정상인 것으로 인지(default:1회)
6. 결론
서비스 확장성, 안정성을 고려한다면 앞단에 Web server를 두는 것이 유리
7. 용어정보
정적 컨텐츠
- 요청 인자 값에 상관없이 달라지지 않는 컨텐츠
- 어느 사용자 요청이던 항상 동일한 컨텐츠
동적 컨텐츠
- 요청 인자에 따라 바뀔 수 있는 컨텐츠
출처:
'10분 테코톡' 카테고리의 다른 글
[10분 테코톡] DTO 와 VO (6) | 2021.06.09 |
---|---|
[10분 테코톡] Spring AOP (0) | 2021.06.08 |
[10분 테코톡] MVC 패턴 (0) | 2021.06.06 |