nginx的程序結構
1.單程序結構(適用於 開發除錯)
2.多程序結構(適合於生產環境)保持nginx健壯,利用多核特性
多程序nginx模型:
乙個父程序:master程序
多個子程序:一類worker程序,一類cache程序(cache manager和 cache loader)
為什麼採用多程序結構,而不是多執行緒結構?
保持高可用性,高可靠性。
如果採用多執行緒,那麼多執行緒之間共享同乙個記憶體的位址空間,如果某乙個第三方模組引發乙個位址空間導致的錯誤,會導致整個nginx程序全部掛掉
而採用多程序模型時,不會出現這樣的問題
各個程序的功能:
master程序不會加入第三方模組**
master程序通常是用來管理,監控worker程序是不是在正常的工作,需不需要重新載入配置檔案,需不需要做熱部署
所有的worker程序是真正處理請求的
cache是在多個worker程序之間共享的,而且cache不但要被worker程序使用,也要被cache manager和 cache loader所使用
cache manager和 cache loader也是為反向**時後端發來的動態請求做快取所使用的
cache manager(快取管理) cache loader(快取載入)
nginx採用事件驅動模型:
每乙個worker程序從頭到尾占用乙個cpu,所以往往要把worker程序的數量配置與伺服器上的cpu核數相一致,也需要把每乙個worker程序與某乙個cpu核繫結在一起,這樣可以更好地使用每乙個cpu核上的快取,減少快取失效的命中率。
Nginx極客時間 Nginx的程序結構
nginx有兩種程序結構 一種是 單程序結構,一種是 多程序結構。單程序結構實際上不適用於生產環境,只適合在開發 除錯時使用。這是因為在生產環境中需要保證nginx足夠健壯,且能夠充分利用 cpu多核的特性。因此預設配置中也是開啟多程序的nginx。nginx多程序結構下,程序種類有三類 maste...
Nginx程序模型
這篇主要是閱讀這篇博文的筆記。nginx採用的也是大部分http伺服器的做法,master,worker模型,基本的事件處理都是放在worker中,master負責一些全域性初始化,以及對worker的管理。nginx中的master和worker之間是通過socketpair來實現的,每次fork...
Nginx程序模型
目錄 1.nginx管理 工作程序模式 2.驚群 問題 為了支援現在流行的多cpu和多核架構,nginx使用了管理程序和工作程序的設計。架構設計如下圖所示 管理程序為工作程序的父程序,負責外部指令的接收,工作程序的狀態監管,負載均衡等 工作程序負責客戶端請求的處理和響應,工作程序一般是按照cpu的核...