進程
一個Master Process, 每個cpu core一個Work process,一個Cache manager process,一個Cache loader process
- master process讀取配置,綁定port,fork work process
- Cache loader process 讀取磁盤上的緩存,然后退出
- Cache manager process周期性的清理磁盤上的緩存
- work process處理所有的網絡連接
Work Process
work process單線程,從master process分配一些監聽的socket,當有連接到來時,從監聽的socket上會產生事件,針對每個連接有一個State machine
Paste_Image.png
Event Driven State Machine
傳統的Server是一個連接(file descriptor)分配一個thread 或者 process。開銷太大
Paste_Image.png
Nginx是一個work process處理多個listen socket和connection socket產生的事件
Paste_Image.png