進(jìn)程
一個(gè)Master Process, 每個(gè)cpu core一個(gè)Work process,一個(gè)Cache manager process叛拷,一個(gè)Cache loader process
- master process讀取配置倦青,綁定port羹唠,fork work process
- Cache loader process 讀取磁盤(pán)上的緩存志鹃,然后退出
- Cache manager process周期性的清理磁盤(pán)上的緩存
- work process處理所有的網(wǎng)絡(luò)連接
Work Process
work process單線程硫狞,從master process分配一些監(jiān)聽(tīng)的socket信轿,當(dāng)有連接到來(lái)時(shí),從監(jiān)聽(tīng)的socket上會(huì)產(chǎn)生事件残吩,針對(duì)每個(gè)連接有一個(gè)State machine
Paste_Image.png
Event Driven State Machine
傳統(tǒng)的Server是一個(gè)連接(file descriptor)分配一個(gè)thread 或者 process财忽。開(kāi)銷太大
Paste_Image.png
Nginx是一個(gè)work process處理多個(gè)listen socket和connection socket產(chǎn)生的事件
Paste_Image.png