반응형
Tomcat, NginX
1. Tomcat
- 의미
- 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버
- 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지(.jsp)와 자바 서블릿이 실행할 수 있는 환경을 제공
- 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다.
- HTTP 서버 자체 내장
- Java Servlet
- 웹 서버가 HTTP 프로토콜을 상요하여 동적 Java 기반 웹 콘텐츠를 처리할 수 있도록 하는 소프트웨어
- Java Servlet 및 JSP는 Java 프로그래밍 언어를 기반으로 한다는 점에서 PHP 또는 ASP.NET와 대체로 비슷함
- Coyote 엔진으로 구성되어 있으며 Tomcat의 기능을 확장하여 여러 Java 엔터프라이즈 사양을 포함하고 Java Persistence API를 포함할 수 있다.
- 더 많은 엔터프라이즈 기능을 포함하는 TomEE로 알려진 확장 버전도 존재
- 장점
- 오픈소스 : 누구나 어디서든 무료로 다운로드 설치 및 사용할 수 있다.
- 높은 유연성 : 내장된 사용자 지정 옵션, 광범위하고 가벼운 특성으로 인해 높은 유연성을 제공하고 사용자가 원하는 방식으로 실행할 수 있으며 문제없이 여전히 잘 작동함
- 안정성 : 가장 안정적인 플랫폼 중 하나이며 Apache 설치와 독립적으로 실행되기 때문에 매우 안정적이며 Teomcat에 장애가 발생하여 작동이 중지되는 경우에도 다른 서버는 문제없이 실행이 가능
2. Nginx
- 의미
- 가벼움과 높은 성능을 목표로 하는 비동기 이벤트 기반 구조의 웹서버 소프트웨어
- 웹 서버, 리버스 프록시 및 메일 프로식 기능을 가진다
- 어플리케이션 서버의 소켓을 가리기 위한 프록시 서버, 클러스터링 된 애플리케이션 서버의 로드밸런서 등 설정을 통해 원하는 방식으로 사용 가능
- 하는 일
- HTTP server
- 정적 파일을 처리하는 web server의 역할
- Reverse proxy server
- 클라리언트의 요청을 각 Application server에 배분
- ex) 클라이언트에서는 80 포트로만 요청이 들어오는데, 이 요청을 8080, xxxx등 여러 Application server로 보내준다
- HTTP server
- 장점
- 요청 처리비용이 적다
- 비동기적으로 요청을 애플리케이션 프로그램에 전달할 수 있고 요청을 처리하는 데에 드는 비용이 적다
- 다양한 Event-driven api feature를 지원
- 상대편 소켓이 셧다운 되거나 장애 발생 시 유연하게 대처 가능
- 메모리 사용량이 적다
- 비활성화된 HTTP keep-alive 연결 1만 개에 2.5mb의 메모리만 사용
- 요청 처리비용이 적다
3. 차이점
- Apache
- 스레드/프로세스 기반 구조로 요청 하나당 스레드 하나가 처리하는 구조
- 사용자가 많으면 많은 스레드가 생성되고 메모리와 CPU의 낭비가 심함
- Nginx
- 비동기 Event-Driven 기반의 구조
- 다수의 연결을 효과적으로 처리 가능
Event-driven 방식
스레드 방식의 경우 하나의 커넥션당 하나의 스레드를 잡아먹지만 이벤트 드라이븐 방식은 여러 개의 커넥션을 모두 Event Handler를 통해 비동기 방식으로 처리해 먼저 처리되는 것부터 진행이 되도록 함
참고 사이트
https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%ED%86%B0%EC%BA%A3
https://www.javatpoint.com/what-is-tomcat
https://azderica.github.io/00-network-nginx/
반응형
'Develop Log > 개발 관련 잡학다식' 카테고리의 다른 글
HTTP Method (0) | 2023.07.21 |
---|---|
OSI(Open Systems Interconnection) 7계층 (0) | 2023.07.18 |
ORM (0) | 2023.07.17 |
Http 버전별 특징 (0) | 2023.07.16 |
첫번째 이야기 WAS, Web Server (0) | 2023.07.16 |