私は1人のワーカーで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)を受け取る2つのプロセスについて混乱しています。
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)