Zettelkasten

nginx 동작 방식

·수정 2026.04.23·수정 1

부모 프로세스에서 워커프로세스 생성 CPU 코어 개수 만큼 워커 프로세스 생성 => context switching 줄임

listen 소켓을 받고 클라 요청이 들어오면 커넥션 형성하고 요청 처리 요청이 없으면 다른 커넥션을 만듦(이벤트) 워커 프로세스에 의해 큐 대기 방식으로 비동기 처리됨

시간이 오래걸리는 이벤트는 스레드 풀에 위임 nginx_architecture.png

  • mater process: config를 읽거나, 포트 붙이기, 자식 프로세스들을 생성하거나 하는 관리자 역할
  • 캐시 로더: nginx가 시작할 때 디스크 기반의 데이터들을 메모리로 올리는 역할
  • 캐시 매니저: 캐시에 있는 데이터들을 주기적으로 정리해서 캐시크기가 커지지 않게 조정

워커 프로세스 내부 동작

  • nginx 설정 값에 맞춰서 초기화 되고, 마스터 프로세스로부터 소켓에서 이벤트를 기다리며, 할당 받을 소켓정보들을 받음
  • 이벤트들은 state machine에 의해서 할당되는데, state machine을 통과하면 이 요청을 어떤식으로 처리할지 판단함

함께 읽기 좋은 글