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)

相关内容