nginx 및 작업자 및 Linux TCP 소켓/lsof

nginx 및 작업자 및 Linux TCP 소켓/lsof

나는 단 한 명의 작업자로 nginx를 시작했습니다.

ps --forest -fC nginx          
UID          PID    PPID  C STIME TTY          TIME CMD
root     3615889   10118  0 14:18 ?        00:00:00 nginx: master process nginx
nginx    3615890 3615889  0 14:18 ?        00:00:00  \_ nginx: worker process

두 프로세스 모두 포트 80에서 수신 대기합니다.

  • pid=3615889가 주요 항목입니다.
  • pid=3615890은 작업자입니다.

그렇다면 인터넷에서 요청이 오면 누가 처리하나요?

OSI 계층 관점에서 프로세스는 어떻게 작동합니까? 모든 요청이 주 서버로 전송된 다음 작업자에게 라우팅되거나 작업자가 요청을 독립적으로 처리할 수 있다고 가정하는 것이 잘못된 것입니까?

동일한 소켓(장치 #2151156)을 수신하는 두 프로세스에 대해 혼란스럽습니다.

sudo ss -ltnp | grep nginx
LISTEN 0      511          0.0.0.0:80         0.0.0.0:*    users:(("nginx",pid=3615890,fd=8),("nginx",pid=3615889,fd=8))
LISTEN 0      511             [::]:80            [::]:*    users:(("nginx",pid=3615890,fd=9),("nginx",pid=3615889,fd=9))

sudo lsof -i TCP:80
COMMAND     PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
nginx   3615889  root    8u  IPv4 2151156      0t0  TCP *:http (LISTEN)
nginx   3615889  root    9u  IPv6 2151157      0t0  TCP *:http (LISTEN)
nginx   3615890 nginx    8u  IPv4 2151156      0t0  TCP *:http (LISTEN)
nginx   3615890 nginx    9u  IPv6 2151157      0t0  TCP *:http (LISTEN)

관련 정보