반응형
이전의 다른 포스팅에서도 언급한 내용입니다만, 웹 서버와 WAS는 다른 요소입니다.
웹서버는 기본적으로 정적인 컨텐츠를 클라이언트에게 제공하고, WAS 어플리케이션 서버는 동적인 컨텐츠를 클라이언트에게 제공합니다.
이 점은 이전 글에서도 이미 설명했던 내용인데 부가적으로 조금 더 설명하자면,
1. 웹서버는 HTTP만 사용하지만, WAS는 여러 프로토콜을 사용합니다.
2. 웹서버는 멀티스레딩을 지원하지 않지만 WAS는 멀티스레딩을 지원합니다.
그렇다면 이러한 특징을 기반으로 NGINX와 tomcat을 분석해 보겠습니다.
엔진엑스는 웹 서버입니다. 멀티프로세스 구조로 운영되고 있습니다. 그리고 event-driven 방식으로 여러 개의 커넥션을 event handler를 통해 비동기 방식으로 처리해서 먼저 처리하는 것부터 실행하도록 합니다.
반대로 톰캣은 Jasper, Catalina, Coyote 등의 컴포넌트로 구성되는 자바로 쓰여진 WAS입니다. 멀티스레드 구조를 가지고 있습니다.
Tomcat의 구조는 위와 같습니다.
특이 사항은 다음과 같습니다.
- Engine부터 Tomcat의 Container라고 표현합니다.
- Realm의 경우 인증/인가에 사용되지만, Tomcat에서 인증/인가 처리를 하지 않으므로 사실상 의미가 없습니다.
- Logger의 경우 Slf4j의 Slf4j Bridge를 통해 치환됩니다.
- Container는 하나의 Pipeline과 여러 Valve를 가지며, Valve를 통해 요청이 라우팅됩니다.
반응형
'Portpolio > webdev_tip' 카테고리의 다른 글
금융SI개발의 구조 (0) | 2024.10.14 |
---|---|
CRUD와 HTTP METHOD (1) | 2024.10.11 |
nginx란 그리고 리눅스에 설치해보자 (0) | 2024.10.11 |
[Spring] @Controller와 @RestController의 차이점 (0) | 2024.09.01 |
리액트는 라이브러리, 노드는 실행 환경 (0) | 2024.08.22 |
댓글