Nginx工作原理

天翼雲開發者社群發表於2023-10-30

程式

一個Master Process, 每個cpu core一個Work process,一個Cache manager process,一個Cache loader process

3061379-888a4efe25c06127.png
  • master process讀取配置,繫結port,fork work process
  • Cache loader process 讀取磁碟上的快取,然後退出
  • Cache manager process週期性的清理磁碟上的快取
  • work process處理所有的網路連線

Work Process

work process單執行緒,從master process分配一些監聽的socket,當有連線到來時,從監聽的socket上會產生事件,針對每個連線有一個State machine

3061379-c1f5a755e4584798.png
Paste_Image.png

Event Driven State Machine

傳統的Server是一個連線(file descriptor)分配一個thread 或者 process。開銷太大

3061379-695b5913539d9730.png
Paste_Image.png

Nginx是一個work process處理多個listen socket和connection socket產生的事件

3061379-b752c59845875e82.png
Paste_Image.png

相關文章