事件驅動模型是nginx伺服器保證完整功能和具有良好效能的重要機制之一。
我們知道nginx伺服器的每個工作程序都可以併發處理客戶端請求。而不用關心io呼叫的具體狀態。io呼叫完全是由事件驅動模型來管理的,事件準備好之後就會通知工作程序事件已經就緒。
1、事件收集器
2、事件傳送器
3、事件處理器
可以理解為乙個用來收集事件的(收集器1)、乙個傳送事件的(傳送器2)、乙個處理事件的(處理器3)。他們的關係是 :產生事件(滑鼠單擊,鍵盤輸入)----》1 ----》2 -----》 3 ---- 》 螢幕
伺服器處理模型程式是基於事件驅動模型中的事件處理器有:
1、事件傳送器傳送請求就建立乙個新程序,呼叫事件處理器處理該請求
2、事件傳送器傳送請求就建立乙個新執行緒,呼叫事件處理器處理該請求
3、事件傳送器傳送請求就將請求放入乙個待處理的事件列表,使用非阻塞i/o方式呼叫事件處理器處理請求。
大多數的網路伺服器都是用3,逐漸形成了所謂的事件驅動處理庫
常見的事件模型處理庫有select、poll、epoll等
想進一步了解可以檢視相關文件。
nginx採用多程序+非同步非阻塞+非阻塞i/o方式,最大程度的提高了處理客戶端請求事件的能力。
伺服器模型
伺服器模型 1 迴圈伺服器模型 tcp 迴圈伺服器 udp 迴圈伺服器 2 併發伺服器 tcp 併發伺服器 父子程序實現併發伺服器 父親程序 接收請求。accept 兒子程序 處理具體客戶端需求。send recv 注意點 殭屍程序,父親活著,兒子死亡,父親沒有為兒子程序收屍,會產生殭屍程序。避免殭...
伺服器模型
在使用socket進行網路程式設計時,首先要選擇乙個合適的伺服器模型是很重要的。在網路程式裡,通常都是乙個伺服器服務多個客戶機,為了處理多個客戶機的請求,伺服器端的程式有不同的處理方式。迭代模型算是最早期的伺服器模型,其核心實現是每來乙個使用者,然後為這個使用者服務到底,過程中不接受任何新的使用者請...
Nginx 搭建Nginx伺服器
在ip位址為192.168.4.5的主機上安裝部署nginx服務,並可以將nginx伺服器,要求編譯時啟用如下功能 支援ssl加密功能 設定nginx賬戶及組名稱均為nginx nginx伺服器公升級到更高版本。步驟一 構建nginx伺服器 1 使用原始碼包安裝nginx軟體包 root proxy...