Tomcat vs NGINX vs Apache

참코딩·2024년 12월 3일

개요

Tomcat, NGINX, Apache Server 에 대해 각 기술의 탄생 배경과 특징들을 정리

서론

제목은 Tomcat vs NGINX vs Apache 라고 적었지만,
정확히는 Apache Tomcat vs NGINX vs Apache HTTP Server
가 조금 더 적절할 것 같다.

셋 모두 웹 서버 혹은 웹 어플리케이션 서버를 운영할 때 자주 사용하게 되는데, 각각을 시간 순서대로 소개하고 정리해 보자.

NCSA Httpd

최초의 널리 사용된 웹 서버 소프트웨어로 알려져 있으며, 인터넷 초창기 웹 서버로서 큰 역할을 하여 이후 여러 웹 서버 기술의 기반이 됨

그러나 완성도, 버그 등의 문제 때문에 개선된 버전의 웹 서버 소프트웨어가 필요했고, NCSA HTTPD의 소스 코드를 기반으로 Apache HTTP Server 가 탄생하게 됨.

Apache HTTP Server

오픈소스이면서도 강력한 기능을 제공하여 전 세계적으로 폭넓게 사용.
플랫폼 독립적이며, 안정성과 성능이 뛰어나다는 특징이 있음.
Apache Software Foundation 소속 소프트웨어.

[ Apache License 2.0 ]
이 라이선스는 자유롭고 유연한 오픈소스 라이선스로, 상업적 사용 및 수정이 허용됩니다. 사용자와 개발자 모두 법적 부담 없이 소프트웨어를 사용할 수 있습니다.

Unix 계열 OS가 Network Connection 을 형성하는 모델을 차용하여, 새로운 요청이 들어올 때 마다 새로운 Process 를 생성하여 처리.

Process 를 생성하는데 걸리는 시간을 줄이기 위하여 미리 Process 를 만들어 놓는 Prefork 방식을 사용했음에도 다양한 문제로 인하여 C10K 라는 유명한 한계에 직면하게 됨

이를 해결하고자 비동기 이벤트 기반 처리가 필요하여 NGINX 가 탄생하게 됨

NGINX

NGINX는 높은 성능과 효율성을 목표로 설계된 경량 웹 서버.설정 값을 읽고 Worker Process 를 생성하는 Master Process 와 특정 Listen Socket 이 지정되고, 이 소켓으로 들어오는 요청을 처리하는 Worker Process 로 구성되어 있음.

새로운 커넥션 생성, 커넥션 제거, 요청 처리 같은 작업을 이벤트라고 부르고, 이벤트들을 OS 레벨에서 비동기 큐에 담아 Worker Process에 전달해줌

비동기 이벤트 기반 처리 모델을 사용하여 대규모 동시 연결 처리에 강점.
주로 Reverse Proxy, 로드 밸런싱, 캐싱에 사용.

Apache Tomcat

Apache 톰켓은 그럼 뭔데?

Tomcat 은 애초에 Web Server 인 Apache HTTP Server 와 NGINX 와 다르게 Web Application Server로, 동적인 데이터를 처리한다는 차이점이 있다.

오히려 Tomcat 은 CGI, Java Servlet, JSP와 함께 묶여서 탄생 배경과 기술 별 특징을 추가로 작성되어야 하기 때문에 다른 포스팅에서 설명을 진행하겠다.

참고 자료

profile
백엔드 개발자 입니다.

0개의 댓글