Nginx工作原理

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

本文分享自天翼雲開發者社群《 Nginx工作原理 》,作者: 王****秀

Nginx的程式模型

Nginx伺服器由一個Master程式和多個Worker程式組成:

Master程式:管理Worker程式。對外介面:接收外部的操作(訊號);對內轉發:根據外部操作的不同,透過訊號管理Worker;監聽:監控Worker程式的執行狀態,Worker程式異常終止後,自動重啟Worker程式。

Worker程式:所有Worker程式都是平等的,用於處理網路請求。程式數量:在nginx.conf中配置,一般設定為核心數,充分利用CPU資源,同時,避免程式數量過多,避免程式競爭CPU資源,增加上下文切換的損耗。

HTTP連線建立和請求處理過程

Nginx啟動時,Master程式載入配置檔案。

Master程式,初始化監聽的Socket。

Master程式,Fork出多個Worker程式。

Worker程式,競爭新的連線,獲勝方透過三次握手,建立Socket連線,並處理請求。


Nginx 高效能、高併發

Nginx 採用多程式+非同步非阻塞方式(IO 多路複用 Epoll)。

請求的完整過程:建立連線→讀取請求→解析請求→處理請求→響應請求。

請求的完整過程對應到底層就是:讀寫 Socket 事件。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2991750/,如需轉載,請註明出處,否則將追究法律責任。

相關文章