해결책
2000년대 초반 웹 서버는 각 연결에 스레드나 프로세스를 할당했고, 트래픽이 많은 사이트는 동시 연결 약 1만 개 부근에서 한계에 부딪혔다. 이것이 C10K 문제다. 러시아 개발자 이고르 시소예프는 러시아의 대형 포털인 Rambler에서 바로 이 문제를 해결하기 위해 2002년에 nginx를 쓰기 시작했다.
nginx는 연결을 소수의 프로세스가 처리하는 이벤트로 취급하므로 부하 상황에서도 메모리 사용이 낮게 유지되고 동작이 예측 가능하게 유지된다. 동일한 코어가 모듈식 아키텍처를 갖추고 HTTP 서버, 리버스 프록시, 콘텐츠 캐시, 로드 밸런서, 그리고 TCP/UDP 또는 메일 프록시 역할을 한다.
2004년 10월에 처음 출시된 nginx는 러시아 포털에서 세계 웹사이트의 상당 부분으로 확산되었다. nginx.org는 Netcraft 기준으로 세계에서 가장 인기 있는 웹 서버라고 부른다. Nginx, Inc.는 상용 지원을 위해 2011년에 설립되었고, F5는 2019년 3월에 약 6억 7,000만 달러에 이 회사를 인수하면서 창립자들을 유지했다.
이룬 것
모든 연결을 스레드가 아닌 가벼운 이벤트로 처리
이벤트 기반 처리는 많은 연결 상황에서도 메모리를 일정하게 유지
하나의 서버가 프록시, 캐시, 로드 밸런싱, TLS를 모두 담당
오픈소스 기반이 거대한 커뮤니티와 인지도를 구축
낮은 자원 사용으로 대규모 운영 비용이 저렴
병목이 연결당 자원이라면 자원 모델을 바꿔야 한다. 이벤트 기반 멀티플렉싱이 하드웨어나 스레드를 추가하는 것보다 낫고, 효율적인 서버 하나가 여러 대의 서버를 대체할 수 있다.
그 후
F5 산하에서 nginx는 여전히 오픈소스 프로젝트이자 상용 제품군으로 남아 있으며, 웹 트래픽의 프런트 엔드와 쿠버네티스 인그레스 컨트롤러 표준으로 널리 사용된다. 인수가 약 6억 7,000만 달러로 평가되면서, 오픈소스 커뮤니티는 F5가 인수한 것의 명백한 일부였다.
근거 확인하기
출처
- nginx: web server, reverse proxy, load balancer nginx.org · nginx.org
- F5 Acquires NGINX to Bridge NetOps & DevOps F5 Networks · f5.com ·
- nginx Wikipedia · en.wikipedia.org