首頁 >運維 >Nginx >Nginx是如何處理HTTP請求的

Nginx是如何處理HTTP請求的

王林
王林轉載
2020-07-08 17:13:592964瀏覽

Nginx是如何處理HTTP請求的

Nginx 是一個高效能的 Web 伺服器,能夠同時處理大量的並發請求。它結合多進程機制和非同步機制 ,非同步機制使用的是非同步非阻塞方式 。

(推薦教學:nginx教學

以下為大家介紹 Nginx 的多執行緒機制和非同步非阻塞機制 。

1、多進程機制

伺服器每當收到一個客戶端時,就會有 伺服器主程序 ( master process )產生一個 子程序( worker process )出來和客戶端建立連接進行交互,直到連接斷開,該子進程就結束了。

使用進程的好處是各個進程之間相互獨立,不需要加鎖,減少了使用鎖對效能造成的影響,同時降低了程式設計的複雜度和開發成本。

其次,採用獨立的進程,可以讓進程互相之間不會影響 ,如果一個進程發生異常退出時,其它進程正常工作, master 進程則很快啟動新的worker 進程,確保服務不會中斷,從而將風險降到最低。

缺點:

作業系統產生一個子程序需要進行 記憶體複製等操作,在資源和時間上會產生一定的開銷。當有大量請求時,會導致系統效能下降 。

2、非同步非阻塞機制

每個工作程序 使用 非同步非阻塞方式 ,可以處理多個客戶端請求 。

當某個 工作流程 接收到客戶端的請求以後,呼叫IO 進行處理,如果無法立即得到結果,就去 處理其他請求 (即為 非阻塞 );而 客戶端 在此期間也 無需等待回應 ,可以去處理其他事情(即為 異步 )。

當 IO 回傳時,就會通知此 工作程序 ;該程序已通知,暫時 掛起 目前處理的交易去 回應客戶端請求 。

以上是Nginx是如何處理HTTP請求的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除