第三章 Nginx服務器架構初探

一、Nginx服務器處理請求
(1)Single 模型
單進程方式
(2)Master-Worker模型
Master-Slave模型

二、Nginx服務器的事件處理機制
事件驅動模型:事件收集器;事件發送器;事件處理器組成
系統架構:預先設計一個事件循環形成的程序,循環不斷檢查目前要處理的事件信息
然後使用“事件發送器”傳送給”事件處理器“。事件處理器通常運用虛函數進制來實現。

Nginx事件驅動模型
事件驅動處理庫又被稱爲多路IO複用:select/poll/epoll
select和poll的區別:
select需要爲讀事件,寫事件和異常事件分別創建一個描述符集合,因此
在最後輪詢的時候,需要分別輪詢這三個集合。
poll只需要創建一個集合,在每個描述符對應的結構上分別設置了讀事件,寫事件或者異常事件,
最後輪詢的時候,可以同時檢查這三種事件是否發生,可以說poll是select的優化實現。


epoll實現:
epoll通過相關調用通知內核創建一個有N個描述符的事件列表;然後,給這些描述符設置所關注的事件,
並把它添加到內核的事件列表中。

select/poll和epoll的區別:
(1)進程支持的打開的描述符連接數目不同
(2)FD劇增後帶來的IO效率問題,一個需要線性遍歷;一個不需要(回調通知)
(3)消息傳遞方式,一個需要拷貝,一個使用了共享內存方式

三、Nginx服務器架構
主進程:主要進行Nginx配置文件的解析,數據結構初始化,模塊配置和註冊,信號處理,網絡監聽生成,工作進程生成和管理等工作。
工作進程:主要進行進程初始化,模塊調用和請求處理等工作,是Nginx服務器提供服務的主體。
緩存索引重建及管理進程:數據緩存和更新





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章