문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

엔진엑스 | |
개발사 | NGINX, Inc F5, Inc (모기업) |
종류 | 웹 서버 리버스 프록시 서버 |
최초 버전 | 0.1.0 |
최초 공개일 | 2004년 10월 4일 |
작성 언어 | C |
라이선스 | NGINX: BSD 2-Clause (무료) NGINX Plus: 상용 라이선스(유료) |
상세 정보 | |
개발자 | 이고르 시쇼브(Igor Sysoev) |
개발 시작 | 2002년 |
회사 설립 | 2011년 (NGINX, Inc 설립) |
모기업 인수 | 2019년 3월 (F5 Inc가 NGINX, Inc 인수) |
주요 기능 | HTTP 서버 구동 리버스 프록시 IMAP/POP3 서버 구동 |
주요 연동 기술 | Java 서블릿: Apache Tomcat 연동 PHP: PHP-FPM(FastCGI Process Manager) 연동 ASP.NET Core: Kestrel WAS와 리버스 프록시로 연동 |
개발 배경 | Apache HTTPd의 C10K 문제 해결 목적 |
시장 점유율 (2023년 7월 기준) | 웹 서버 소프트웨어 1위 (34.3%) |
저작권 분쟁 | 2019년 12월, Rambler 회사가 NGINX에 대한 저작권 주장 |
개발 중심지 변천 | 초기: 러시아 2022년 4월 이후: 미국 (러시아 사무실 폐쇄) |
공식 링크 | 소스코드 |

엔진엑스는 C 언어로 작성된 오픈 소스 웹 서버이자 리버스 프록시 서버 소프트웨어이다. 2004년 10월 4일에 최초 버전이 공개되었으며, 가볍고 높은 성능을 주요 특징으로 한다. 원래 러시아에서 개발되었으나, 현재는 NGINX, Inc를 통해 운영되며, 해당 회사의 모기업은 F5, Inc이다.
이 소프트웨어는 HTTP, HTTP/2, 리버스 프록시, IMAP, POP3 등 다양한 프로토콜을 처리할 수 있다. PHP는 PHP-FPM을, 자바 서블릿은 아파치 톰캣과 같은 별도 프로세스 관리자와 연동하여 구동하는 방식이 일반적이다. 비동기 이벤트 기반의 구조를 채택하여 많은 수의 동시 연결을 효율적으로 처리하는 데 강점을 보인다.
엔진엑스는 두 가지 라이선스 모델을 제공한다. 기본 오픈 소스 버전은 BSD 2-Clause 라이선스를 따르며 무료로 사용할 수 있다. 기업용 고급 기능과 지원이 필요한 경우를 위해 NGINX Plus라는 상용 유료 라이선스도 별도로 운영되고 있다.

엔진엑스의 개발은 2002년 러시아의 프로그래머 이고르 시쇼브에 의해 시작되었다. 그는 당시 널리 사용되던 아파치 HTTP 서버가 대량의 동시 연결을 처리하는 데 한계(C10K 문제)를 보이는 것을 지적하며, 더 가볍고 효율적인 대안을 만들기로 결심했다. 그의 노력 끝에 최초 버전 0.1.0이 2004년 10월 4일 오픈 소스로 공개되었다.
2011년에는 이고르 시쇼브와 막심 코노발로프가 공동으로 NGINX, Inc.를 설립하여 기업 지원과 상용 제품인 NGINX Plus의 개발을 본격화했다. 이후 2019년 3월, 미국의 네트워킹 및 보안 기업인 F5, Inc.가 NGINX, Inc.를 약 6억 7천만 달러에 인수하였다. 같은 해 12월, 시쇼브의 전 직장이었던 러시아 회사 Rambler가 엔진엑스에 대한 저작권을 주장하며 법적 분쟁을 일으켰으나, 구체적인 결과는 공개되지 않았다.
2022년 초 창립자 이고르 시쇼브가 은퇴한 후, 같은 해 4월 러시아의 우크라이나 침공으로 인한 국제적 제재와 보안 우려로 NGINX, Inc.는 러시아 사무실을 폐쇄하고 모든 개발 및 운영을 미국으로 통합하였다. 이러한 변화에도 불구하고, 엔진엑스는 비동기 이벤트 기반 구조의 우수한 성능으로 웹 서버 시장 점유율 1위를 차지하며 성장을 지속하고 있다.

엔진엑스는 두 가지 주요 라이선스 모델을 제공한다. 무료 오픈 소스 버전인 NGINX와 유료 상용 버전인 NGINX Plus가 그것이다.
무료 버전인 NGINX는 BSD 라이선스 중에서도 매우 허용적인 BSD 2-Clause 라이선스를 따른다. 이 라이선스는 'Simplified BSD 라이선스' 또는 'FreeBSD 라이선스'라고도 불리며, 소스 코드의 수정 및 재배포에 매우 자유롭다. 원저작자 표기와 라이선스 고지 의무만 지키면 된다. GPL과 달리 수정한 소스 코드를 공개할 의무가 없어, 상용 소프트웨어에 자유롭게 포함시켜 사용할 수 있다는 점이 특징이다.
반면, NGINX Plus는 NGINX, Inc가 제공하는 상용 유료 제품이다. 이 버전은 고급 로드 밸런싱, 세션 지속성, 실시간 모니터링 대시보드, 공식 지원 서비스 등 기업 환경에 필요한 추가 기능과 기술 지원을 포함한다. 라이선스 비용은 연간 구독 형태로 청구되며, Standard 등급 기준으로 연간 수천 달러 수준의 비용이 발생하는 것으로 알려져 있다.
이러한 이중 라이선스 정책은 많은 오픈 소스 프로젝트가 채택하는 전략으로, 커뮤니티에는 무료로 강력한 기본 기능을 제공하면서도, 기업 고객에게는 안정적인 지원과 고급 기능을 유료로 제공하는 비즈니스 모델을 구성한다. 엔진엑스의 높은 시장 점유율은 이 무료 오픈 소스 버전의 광범위한 채택에 크게 기인한다.

엔진엑스의 핵심 기능은 비동기 이벤트 기반의 아키텍처에 있다. 아파치 HTTP 서버와 같은 전통적인 웹 서버가 요청마다 새로운 프로세스나 스레드를 생성하는 방식과 달리, 엔진엑스는 단일 마스터 프로세스가 여러 워커 프로세스를 관리하며, 각 워커는 비동기 논블로킹 방식으로 수천 개의 연결을 효율적으로 처리한다. 이 구조는 C10K 문제를 해결하며, 제한된 자원으로도 대량의 동시 접속을 안정적으로 처리할 수 있게 해준다. 이로 인해 높은 처리량과 낮은 메모리 사용량을 동시에 달성하는 것이 가능하다.
주요 기능으로는 HTTP 및 HTTP/2 서버 역할, 리버스 프록시 서버 역할, 로드 밸런싱, 캐싱 등이 있다. 또한 IMAP과 POP3를 위한 메일 프록시 서버로도 구동될 수 있다. 설정 파일을 변경한 후 프로세스를 완전히 재시작하지 않고도 서비스를 다시 불러올(reload) 수 있어 서비스 중단 없이 설정을 적용할 수 있는 점도 중요한 특징이다.
기능은 모듈식 구조로 확장된다. 코어 기능 외에 gzip 압축, SSL/TLS 암호화, 리다이렉션, 접근 제어 등 다양한 기능이 모듈로 제공된다. 사용자는 필요에 따라 컴파일 시점에 특정 모듈을 포함하거나 제외시켜 최소한의 기능만 가진 경량화된 바이너리를 생성할 수 있다. 이는 불필요한 기능으로 인한 오버헤드를 줄여 성능을 최적화하는 데 기여한다.
엔진엑스는 동적 웹 애플리케이션을 서비스할 때는 주로 프록시 서버로 활용된다. 예를 들어, PHP는 PHP-FPM과 연동하고, 자바 애플리케이션은 아파치 톰캣 등의 애플리케이션 서버와 연동하여 정적 콘텐츠 처리는 엔진엑스가, 동적 요청은 백엔드 애플리케이션 서버가 담당하는 구성이 일반적이다. 이는 LEMP 스택(Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl)의 핵심 구성 요소로서 널리 사용된다.

웹사이트가 엔진엑스를 사용하고 있는지 확인하는 가장 일반적인 방법은 HTTP 응답 헤더를 살펴보는 것이다. 웹사이트에 접속할 때 서버가 보내오는 응답 헤더에는 종종 Server라는 항목이 포함되어 있으며, 이 값에 'nginx'가 표기되어 있는 경우 해당 서버가 엔진엑스를 사용하고 있음을 알 수 있다. 그러나 이 방법은 서버 관리자가 보안을 위해 헤더 정보를 숨기거나 변경했을 경우, 또는 CDN을 사용하는 경우에는 정확하지 않을 수 있다. CDN을 경유하는 트래픽은 최종 사용자에게 CDN 서비스의 서버 정보만 노출시키기 때문이다.
CDN 뒤에 있는 실제 웹 서버를 확인하려면 간접적인 방법을 사용해야 한다. 대표적인 방법은 서버에 과도한 부하를 주는 요청을 보내 특정한 오류 메시지를 유발하는 것이다. 예를 들어, 매우 긴 URL을 요청하거나 과도하게 큰 요청 헤더를 전송했을 때, 서버가 반환하는 오류 페이지의 내용이나 오류 코드가 특정 웹 서버 소프트웨어에 고유한 형태일 수 있다. 엔진엑스는 요청 URI가 너무 길 경우 '414 Request-URI Too Large' 오류를, 요청 헤더가 너무 클 경우 '431 Request Header Fields Too Large' 오류를 반환하는 것으로 알려져 있다.
확인 방법 | 설명 | 주의사항 |
|---|---|---|
HTTP | 응답 헤더의 | 보안 설정으로 숨겨지거나, CDN 사용 시 가려질 수 있음. |
오류 응답 분석 | 의도적으로 특정 오류(예: 414, 431)를 유발해 반환되는 메시지 형태 확인. | 서버별 오류 페이지가 커스터마이즈된 경우 판단이 어려울 수 있음. |
네트워크 도구 활용 | 브라우저 개발자 도구의 네트워크 탭이나 | 가장 기본적이고 쉬운 1차 확인 방법. |
이러한 방법들에도 불구하고, 현대적인 웹 인프라에서는 보안과 개인정보 보호를 위해 서버 정보를 철저히 숨기는 경우가 많다. 따라서 특정 사이트가 엔진엑스를 사용한다는 것을 공개적으로 확인하는 것은 기술적으로 가능할지라도, 사이트의 보안 정책을 위반하지 않는 선에서 이루어져야 한다.

엔진엑스는 2002년 러시아의 프로그래머 이고르 시쇼브가 아파치 HTTP 서버의 C10K 문제를 해결하기 위해 개발을 시작했다. 그는 당시 재직 중이던 람블러라는 회사에서 업무와 무관하게 개인적으로 개발을 진행했으며, 2004년 10월 4일에 최초 버전을 오픈 소스로 공개했다. 이후 2011년에 시쇼브와 막심 코노발로프가 공동으로 NGINX, Inc.를 설립해 사업을 본격화했다.
2019년 3월, 미국의 네트워크 보안 기업 F5, Inc.가 NGINX, Inc.를 약 6억 7천만 달러에 인수했다. 그러나 같은 해 12월, 시쇼브의 전 직장이었던 러시아의 람블러가 NGINX의 저작권을 주장하며 법적 분쟁을 제기했고, 모스크바 사무실이 압수수색을 당하는 사태가 발생했다. 이 분쟁은 이후 람블러의 모기업인 스베르방크와 F5 사이의 협상으로 넘어갔으나, 그 결과는 공개되지 않았다.
2022년 초, 창립자 이고르 시쇼브가 NGINX와 F5를 떠나 은퇴했다. 또한 같은 해 러시아의 우크라이나 침공 이후 사이버 보안 우려와 국제적 보이콧 분위기가 고조되자, F5는 2022년 4월을 기해 러시아 사무실을 완전히 폐쇄하고 모든 개발 및 관리 업무를 미국으로 이전했다. 이로 인해 러시아에서 시작된 프로젝트는 완전히 미국 기반의 프로젝트로 재편되었다.