-
728x90
Nginx란?
Nginx는 오픈 소스 웹 서버로서, 초기에 웹 서버로서 성공했지만, 현재에는 리버스 프록시(reverse proxy), HTTP 캐시(HTTP cache), 그리고 로드 밸런서(load balancer)로도 사용된다.
현재 Microsoft, Google, Apple, Twitter 등 수 많은 기업에서 Nginx를 도입해 사용 중이다.
Nginx는 Igor Sysoev로부터 2004년에 C10k problem에 대안으로써 세상에 첫 공개되었다.
여기서 C10k problem을 간단히 설명하자면, 10000개의 동시 커넥션 다뤄야 하는 것 같은 퍼포먼스 이슈에 대한 문제를 말한다.
Nginx가 하는 일
Nginx는 낮은 메모리 사용량과 높은 동시 작업량을 제공한다.
Nginx는 각 웹 요청을 위한 새로운 프로세스를 만들어 내기보단, 요청을 싱글 스레드에서 다루는 비동기 방식과 event-driven 방식을 사용한다.
Nginx를 사용함으로써, 하나의 마스터 프로세스가 다수의 워커 프로세스들을 관리할 수 있게 된다.
워커들이 실제 프로세싱을 진행하는 동안 마스터는 워커 프로세스를 관리하게 되는 것이다.
왜냐하면, Nginx는 비동기 방식으로서 각 요청이 다른 요청을 막지 않고 동시적으로 워커로부터 실행될 수 있기 때문이다.
Nginx가 제공하는 기능은 다음과 같다.
- 리버스 프록시(+ 캐싱)
- IPv6
- 로드 밸런싱
- FastCGI 지원(+ 캐싱)
- 웹소켓
- 정적, 인덱스 파일을 다루며 더불어 자동 인덱싱
- TLS/SSL (+ SNI)
Reference
728x90Jacob Lee🧑🏻💻Back-end to DevOps | 🎯Keep Running the Race