Webserver Nginx 웹서버와 그 특징은?

NginX 웹서버란?

  • NginX 웹서버(NginX Web Server)는 러시아의 이고르 시셰프(Игорь Сысоев, 영어: Igor Sysoev)가 개발한 무료 오픈소스 웹서버 소프트웨어입니다. 가벼움과 높은 성능을 목표로 하고 웹서버, 리버스프록시 및 메일프록시 기능을 가지고 있습니다. 2011년 엔진엑스 회사를 설립하여 유료 기술지원을 하고 있습니다.

  • NginX의 특징은 다음과 같습니다.

    • 기존의 [[아파치] 웹서버는 하나의 쓰레드에서 하나의 클라이언트를 처리해서 정보를 읽고 쓰고 가공하는데 걸리는 지연시간이 있고 쓰레드 생성 속도도 느립니다.
    • NginX는 이벤트 지향 아키텍처(Event-driven Architecture) 방식으로 메모리 생성 속도가 빠르고 더 작은 쓰레드로 훨씬 많은 클라이언트를 처리합니다.
    • 환경 설정을 바꾸고 나서 서버 데몬을 재시작할 필요 없이 리로드(reload) 시그널을 보내면 됩니다. 즉, 프로세스를 재시작할 필요가 없다는 장점이 있습니다.
    • 아파치 웹서버가 제공하는 모든 기능을 제공합니다. ('트래픽 부하 균형'(load balancing), TLS/SSL 보안, 메일프록시)
    • 소켓(socket) 인터페이스처럼 결과를 리턴하는 것이 아니라 블로킹(blocking)하는 Non blocking event driven 네트워크 통신방식으로 동작합니다.

Apache2와 Nginx의 차이

  • Apache2
    • Apache는 웹 서버를 실행하기 위한 오픈 소스 소프트웨어를 개발하고 제공하는 소프트웨어 기반입니다. 그들의 주요 제품은 오늘날 사용되는 가장 많이 사용되는 HTTP 서버입니다.
    • Apache는 LAMP (Linux / Apache / MySQL / PHP)라는 완전히 무료로 제공되는 웹 서버 솔루션에 포함되어 있습니다. 이 솔루션은 운영 체제에서 스크립팅 언어에 이르는 모든 웹 게시 요구를 완전히 처리하는 오픈 소스 소프트웨어입니다.

  • NginX
    • NginX는 경량의 자원활용과 물리적인 하드웨어로 쉽게 확장이 가능해서 더욱 주목 받기 시작한 웹서버입니다. 특히 정적인 컨텐츠들을 빠르게 처리하는 데 있어서 매우 탁월합니다.
    • 단, 동적 처리를 별도로 담당하는 소프트웨어 스택들과 연계해서 고성능 서비스를 제공할 수 있습니다. 그러나 이러한 동적 처리도 마찬가지로 성능에 있어서 문제가 되지 않기 때문에 널리 쓰이고 있습니다.
    • NginX는 프로세스 또는 스레드 개념이 아닌, 이벤트 개념으로 접근합니다. 단일 NginX 작업자가 동시에 수천 개의 요청을 처리할 수 있다는 의미입니다. Worker가 이벤트 트리거 될 때마다 새로운 요청을 빠르게 선택할 수 있는 내부 루핑 시스템을 적용하는 방식입니다.