Nginx實現原理master和worker

key2world發表於2020-12-16
  1. master 和 worker

在這裡插入圖片描述

  1. worker如何進行工作的流程(請求先到nginx中的master(管理員),master把任務給worker,worker通過爭搶機制得到任務,worker可以進行反向代理用tomcat完成具體操作 )

    在這裡插入圖片描述

  2. 一個master 和 多個worker有哪些好處

    (1)有利於我們nginx -s reload熱部署操作

    (2)每個worker是獨立的程式,如果有其中一個worker出現問題,其他worker獨立的,繼續進行爭搶,實現請求過程,不會造成服務中斷。

  3. 設定多少個worker才合適

    nginx同Redis類似都採用io多路複用機制,每個worker都是一個獨立的程式,但每個程式裡只有一個主執行緒,通過非同步阻塞的方式來處理請求,即使是成千上萬個請求也不再話下。每個worker的執行緒可以把一個cpu的效能發揮到極致。所以worker數和伺服器的cpu數相等最為適宜。設少了會浪費cpu,設多了會造成cpu頻繁切換上下文帶來的損耗。

  4. 連線數worker_connection

    1. 傳送請求,佔用了worker的幾個連線數?

      2或者4個

    2. nginx有一個master,有四個worker,每個worker支援最大的連線數1024,支援的最大併發數是多少?

      • 普通的靜態訪問最大併發數是:worker_connectionsworker_processes(worker數量)/2
      • 如果是http作為反向代理來說,最大併發數量應該是:worker_connections*worker_processes(worker數量)/4

少年易老學難成,一寸光陰不可輕

相關文章