Nginx的原理和使用

nginx架構

image.png

nginx使用多進程的方式來工作,nginx啟動后會有一個master進程和多個worker進程,worker進程的數(shù)量一般與機器cpu的核數(shù)一致,原因是與nginx的進程模型和事件處理模型有關。
nginx啟動后,要操作nginx,只要操作master即可,因為master管理worker

./nginx -s reload 重啟nginx
./nginx -s stop 停止nginx

以nginx為例解釋下如何工作的:執(zhí)行命令時,先啟動一個新的nginx進程,在解析到relaod參數(shù)后,知道我們會控制nginx重新加載配置文件,會向master發(fā)送信號,然后master會開創(chuàng)新的worker進程,新的worker進程創(chuàng)建后,就會接受并處理新的請求,老的worker在處理完當前請求后會被殺掉,所以實現(xiàn)重新加載配置文件并生效。

那么既然worker是平等的,怎么搶奪處理請求的機會呢?首先,worker進程是由master進程fork出來的,在master創(chuàng)建worker進程之前,先建立好需要監(jiān)聽的listenfd,在fork出worker,所有worker進程的listenfd會在新連接到來時變得可讀,為保證只有一個進程處理該連接,所有worker進程在注冊listenfd之前搶讀互斥鎖,搶到的才會注冊listenfd讀事件,在讀事件里調(diào)用accept接受該連接。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,039評論 24 1,002
  • 什么是Nginx? Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器N...
    jiangmo閱讀 2,650評論 1 9
  • Nginx的工作原理 1.Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成,其中,內(nèi)核的設計非常微小和簡潔,...
    架構飛毛腿閱讀 6,333評論 1 27
  • 想花 (花開)文/劉平榮 去年櫻花開,落花撫臉頰。 今年櫻花開,隔岸兩相望。 府河流水長,流水伴花香。 眼見花期到...
    冷雨問秋劉平榮閱讀 395評論 0 0
  • 一般函數(shù)調(diào)用 鏈式調(diào)用 參考資料來源:http://valiantcat.com/
    小黑Swift閱讀 792評論 2 1

友情鏈接更多精彩內(nèi)容