今天我們就來聊聊Nginx服務器的架構!
Nginx模塊介紹
Nginx內部由核心模塊和其他功能模塊組成。這種簡單的結構分層,便于進行功能的擴展,也代碼更加清晰易于維護。我們通常將其分為五大模塊:核心模塊,標準HTTP模塊,可選HTTP模塊,郵件服務模塊和第三方模塊。
核心模塊
核心模塊是程序運行所不可或缺的,它為Nginx提供了最基本的服務功能,比如權限控制、進程管理、日志操作等。
標準HTTP模塊
作為HTTP服務器必須的標準功能模塊,包括對HTTP的訪問控制、基本認證、URL重寫、負載均衡等。
可選HTTP模塊
用于擴展標準的HTTP功能,比如常見的SSL加密、GeoIP、FLV處理。
郵件服務模塊
實現了郵件服務器的代理功能,包含imap、pop3、smtp3種郵件協議的支持。
第三方模塊
這個無須解釋了吧,正是因為有了這功能才令Nginx顯得異常強大。
架構一覽
Nginx是基于事件驅動模型設計的,進程能夠同時處理多個并發請求。它采用Master-Worker工作模式,啟動過程如下:啟動后會創建一個主進程,主進程負責監聽外部請求,并將請求派發給Worker進程處理,Worker進程會將請求通過代理轉發到后端服務器,由后端服務器進行處理。
Master進程
也叫監控進程,主要監聽外部請求和管理Worker子進程,還有負責更換日志文件、配置讀取、平滑升級等。
Worker進程
也叫工作進程,負責與后端服務器通信,接收處理結果,Cache和響應客戶端請求。
請求處理
Nginx通常作為Web服務器使用,與客戶端存在一對多的關系,這就要求它必須能夠同時為多個客戶端提供服務。那么Nginx處理請求的過程如何呢?
Nginx采用多進程機制(Master-Worker)和異步機制,每個Worker進程都使用異步非阻塞方式,可以同時處理多個請求。當某個Worker進程接收請求之后,調用IO進行處理,如果不能立即得到結果,就去優先處理其他的請求;而客戶端在此期間也不用等待響應結果,能夠去處理其他操作;當結果返回時,就會通知這個Worker進程,然后進行響應。
責任編輯:任我行
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監管與當量協同的碳市場框架設計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉型與經濟發展并進
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
2020年二季度福建省統調燃煤電廠節能減排信息披露
2020-07-21火電環保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規范法律問題研究(上)
2019-10-31能源替代規范法律 -
區域鏈結構對于數據中心有什么影響?這個影響是好是壞呢!