• Nginx 이해하기

    2021. 5. 24.

    by. Jacob Lee

    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

    728x90

    댓글