이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.23 10:01
NGINX는 C 언어로 작성된 오픈 소스 웹 서버이자 리버스 프록시 서버 소프트웨어이다. 원래 러시아의 프로그래머 이고르 시쇼브에 의해 개발되었으며, 가볼우면서도 높은 성능을 목표로 설계되었다. 현재는 미국의 F5, Inc가 소유한 NGINX, Inc에서 개발 및 운영을 주도하고 있다.
이 소프트웨어는 HTTP, HTTP/2, HTTP/3 프로토콜을 지원하며, IMAP과 POP3와 같은 메일 프록시 서버로도 구동될 수 있다. 아파치 HTTP 서버가 직면한 C10K 문제를 해결하기 위해 설계된 비동기 이벤트 기반 아키텍처를 채택하여, 많은 수의 동시 연결을 효율적으로 처리하는 데 강점을 보인다.
NGINX는 무료로 사용할 수 있는 오픈 소스 버전과 상용 지원이 포함된 유료 버전인 NGINX Plus로 제공된다. 오픈 소스 버전은 BSD 라이선스 하에 배포되어 자유로운 사용, 수정, 재배포가 가능하다. 리눅스 기반의 웹 서버 스택에서 아파치 HTTP 서버를 대체하여 LEMP 스택을 구성하는 데 널리 사용된다.
현재 전 세계 웹 서버 시장에서 높은 점유율을 차지하고 있으며, 마이크로소프트의 ASP.NET Core 애플리케이션을 Kestrel 웹 서버와 연동할 때 리버스 프록시로도 자주 활용된다. 설정 파일을 변경한 후 프로세스를 재시작하지 않고 재적재(reload)할 수 있는 기능 등 운영상의 편의성도 제공한다.
NGINX의 개발은 2002년 러시아의 프로그래머 이고르 시쇼브에 의해 시작되었다. 그는 Apache HTTP 서버가 처리하는 동시 연결 수에 한계를 보이는 C10K 문제를 해결하기 위해, 더 가볍고 효율적인 웹 서버를 만들기로 결심했다. 그 결과, 2004년 10월 4일에 최초 버전인 0.1.0이 오픈 소스로 공개되었다.
2011년에 이고르 시쇼브와 막심 코노발로프는 NGINX, Inc를 공동 설립하여 기업 지원과 상용 제품인 NGINX Plus의 개발을 본격화했다. 이후 2019년 3월, 미국의 네트워킹 및 보안 기업인 F5, Inc가 NGINX, Inc를 약 6억 7천만 달러에 인수하였다. 같은 해 12월에는 러시아의 인터넷 포털 Rambler가 시쇼브의 전 직원 신분을 근거로 NGINX에 대한 저작권을 주장하며 법적 분쟁을 일으키기도 했다.
2022년 초, 창립자 이고르 시쇼브가 F5를 떠나고, 같은 해 발생한 우크라이나 전쟁의 여파로 인해 회사는 러시아 사무실을 폐쇄하였다. 이후 개발 및 관리의 중심은 완전히 미국으로 옮겨졌다. 이러한 역사적 배경에도 불구하고 NGINX는 높은 성능과 안정성으로 웹 서버 및 리버스 프록시 시장에서 빠르게 점유율을 확대해 나갔다.
NGINX는 두 가지 주요 라이선스 모델을 제공한다. 무료 오픈 소스 버전인 NGINX와 상용 유료 버전인 NGINX Plus가 그것이다.
무료 버전인 NGINX는 BSD 라이선스 중에서도 매우 제한이 적은 BSD 2-Clause 라이선스(Simplified BSD 라이선스)를 따른다. 이 라이선스는 원저작자 표시와 라이선스 고지문 유지 조건만 충족하면, 소스 코드 수정 여부와 관계없이 자유롭게 사용, 수정, 재배포할 수 있다. GPL과 달리 수정된 소스 코드를 공개할 의무가 없어, 상용 소프트웨어에 포함시켜 배포하는 데에도 제약이 없다. 이러한 라이선스의 자유로움이 NGINX가 오픈 소스 커뮤니티와 상업적 임베디드 시스템에서 모두 널리 채택되는 데 기여했다.
한편, 기업을 위한 상용 제품인 NGINX Plus는 별도의 유료 라이선스를 통해 제공된다. 이 버전은 무료 버전의 모든 기능에 더해 고급 로드 밸런싱, 세션 지속성, 실시간 모니터링 대시보드, 공식 기술 지원 등을 포함한다. 라이선스 비용은 연간 구독 형태로 청구되며, 지원 규모와 요구 사항에 따라 차등 적용된다. NGINX Plus의 라이선스 판매 및 지원은 현재 모기업인 F5, Inc가 담당하고 있다.
NGINX는 기본적으로 웹 서버와 리버스 프록시 서버로 작동한다. HTTP, HTTP/2, 그리고 최신 HTTP/3 프로토콜을 지원하여 현대적인 웹 트래픽을 효율적으로 처리한다. 그 핵심 설계 철학은 아파치 HTTP 서버와 같은 전통적인 서버가 직면한 C10K 문제를 해결하는 데 있으며, 이를 위해 비동기 이벤트 기반 프로그래밍 아키텍처를 채택했다. 이 구조는 각 연결에 대해 새로운 프로세스나 스레드를 생성하지 않고, 적은 수의 워커 프로세스가 수많은 동시 연결을 효율적으로 관리하게 한다. 이로 인해 높은 동시 접속 상황에서도 예측 가능한 낮은 메모리 사용량과 뛰어난 성능을 보여준다.
주요 기능으로는 로드 밸런싱, SSL/TLS 종료, 정적 콘텐츠 서빙, 캐싱, Gzip 압축 등이 있다. 또한 FastCGI, uWSGI, SCGI 등의 프로토콜을 통해 PHP, Python, Ruby와 같은 다양한 백엔드 애플리케이션 서버와 연동할 수 있다. 이러한 기능들은 대부분 모듈화되어 있어, 필요에 따라 컴파일 시점에 선택적으로 포함시킬 수 있어 경량화된 서버 구축이 가능하다.
운영 측면에서 NGINX의 큰 장점은 서비스 중단 없이 설정을 적용할 수 있다는 점이다. 설정 파일을 변경한 후 데몬 프로세스를 재시작하지 않고, reload 신호를 보내기만 하면 새로운 워커 프로세스가 새 설정으로 구동되고, 기존 프로세스는 진행 중인 연결을 정상적으로 처리한 후 종료된다. 이는 고가용성 웹사이트와 서비스를 운영하는 데 필수적인 기능이다.
상용 제품인 NGINX Plus는 오픈 소스 버전의 모든 기능에 더해 고급 로드 밸런싱 알고리즘, 실시간 활동 모니터링 대시보드, 공식 지원, 그리고 API를 통한 동적 구성 관리와 같은 엔터프라이즈급 기능을 제공한다. 또한 마이크로서비스 아키텍처를 위한 애플리케이션 서버인 NGINX Unit을 통해 동적으로 구성 변경이 가능한 애플리케이션 서빙 환경을 구성할 수 있다.
NGINX가 적용된 웹사이트인지 확인하는 가장 일반적인 방법은 HTTP 응답 헤더를 살펴보는 것이다. 웹사이트에 접속할 때 서버가 보내오는 헤더 정보 중 Server 항목을 확인하면, 해당 사이트가 사용 중인 웹 서버 소프트웨어의 이름과 버전을 알 수 있다. 예를 들어, Server: nginx/1.18.0과 같은 형태로 표시된다.
그러나 CDN을 사용하거나 보안을 강화한 사이트에서는 이 정보를 숨기는 경우가 많다. CDN 공급자에 따라 원본 서버의 Server 헤더를 그대로 전달하기도 하지만, 대부분의 경우 요청을 중계하는 CDN 서버 자체의 정보(예: Server: cloudflare)로 대체된다. 또한, 공격자가 특정 웹 서버의 취약점을 악용하는 것을 방지하기 위해, 관리자가 의도적으로 헤더에서 서버 정보를 제거하거나 변경하는 설정을 적용하기도 한다.
이러한 경우에도 간접적인 방법으로 NGINX 사용 여부를 추측할 수 있다. 서버가 반환하는 특정 오류 메시지의 문구나 형식이 NGINX에 고유한 경우가 있다. 예를 들어, 요청 URI가 너무 길 때 발생하는 414 Request-URI Too Large 오류나, 응답 데이터가 특정 크기를 초과할 때 나타나는 nginx 특유의 에러 페이지를 통해 배후의 서버를 유추할 수 있다. 또한, 서버가 처리하지 못하는 특정 HTTP 메서드 요청에 대한 반응 차이를 통해 판단하는 방법도 있다.
NGINX는 원래 러시아에서 개발되었으나, 현재는 미국의 F5, Inc가 소유하고 있다. 2019년 F5가 NGINX, Inc를 인수한 후, 2022년 우크라이나 전쟁을 계기로 러시아 사무실을 폐쇄하고 본격적으로 미국에서 개발 및 관리를 이어가고 있다. 이 과정에서 창립자인 이고르 시쇼브도 회사를 떠나게 되었다.
웹 서버 시장에서 NGINX는 Apache HTTP Server를 제치고 점유율 1위를 차지하고 있다. 높은 성능과 낮은 자원 사용량 덕분에 기존 아파치 사용자들도 점차 NGINX로 전환하는 추세이며, 마이크로소프트의 ASP.NET Core 환경에서도 리눅스용 리버스 프록시 서버로 널리 활용되고 있다.
NGINX의 오픈 소스 버전은 BSD 라이선스를 따르며, 상용 제품인 NGINX Plus는 별도의 유료 라이선스를 통해 제공된다. NGINX는 HTTP/2와 HTTP/3를 공식 지원하며, 비동기 이벤트 기반 구조로 대량의 동시 연결을 효율적으로 처리한다는 특징을 가진다.