nginx大概工作機制

2022-03-27 14:25:17 字數 2026 閱讀 8231

1.master和worker

nginx啟動後,會有2種程序:worker和master;worker可能有多個;

master程序負責管理分配任務,worker程序負責實際工作;

worker工作機制:

當客戶端傳送乙個請求後,master接收請求,然後後分配給worker;

分配的機制為爭搶;worker搶到任務後將利用反向**請求tomcat;

乙個master和多個worker的好處:

1】可以使用 nginx –s reload 熱部署,利用 nginx 進行熱部署操作

線上部署的伺服器一般不會停止,如果停止可能會造成問題;

有多個worker,worker1搶到了任務,此時伺服器使用 nginx –s reload重載入;

此時又來了乙個新的請求,worker1因為有任務而不會再參與爭搶;

2】每個 woker 是獨立的程序,如果有其中的乙個 woker 出現問題,其他 woker 獨立的,

繼續進行爭搶,實現請求過程,不會造成服務中斷

設定多少個worker合適:

nginx 同 redis 類似都採用了 io 多路復用機制;

每個 worker 都是乙個獨立的程序,

但每個程序裡只有乙個主線程,通過非同步非阻塞的方式來處理請求, 即使是千上萬個請求也不在話下。

每個 worker 的執行緒可以把乙個 cpu 的效能發揮到極致。

所以 worker 數和伺服器的 cpu數相等是最為適宜的。

設少了會浪費 cpu,設多了會造成 cpu 頻繁切換上下文帶來的損耗。

nginx和redis通常都是裝在linux系統中的,也可以裝載windows系統中;

但裝載windows系統中時就沒有io多路復用機制;

也就是說,nginx在windows中功能雖然有,但並不能把它的效能發揮到最大;

設定worker數量:

worker_processes 4

#work 繫結 cpu(4 work 繫結 4cpu)。

worker_cpu_affinity 0001 0010 0100 1000

#work 繫結 cpu (4 work 繫結 8cpu 中的 4 個) 。

worker_cpu_affinity 0000001 00000010 00000100 00001000

worker連線數worker_connection:

這個值是表示每個 worker 程序所能建立連線的最大值,

所以,乙個 nginx 能建立的最大連線數,應該是 worker_connections * worker_processes。

當然,這裡說的是最大連線數,對於http 請 求 本 地 資 源 來 說 , 能 夠 支 持 的 最 大 並 發 數 量 是 worker_connections *worker_processes,

如果是支援 http1.1 的瀏覽器每次訪問要佔兩個連線,

所以普通的靜態訪問最大併發數是: worker_connections * worker_processes /2,

而如果是 http 作 為反向**來說,最大併發數量應該是 worker_connections *worker_processes/4。

因為作為反向**伺服器,每個併發會建立與客戶端的連線和與後端服務的連線,會占用兩個連線。

第乙個:傳送請求,占用了 woker 的幾個連線數?

答案: 2 或者 4 個;

如果是請求靜態資源,需要worker連線客戶端要2個連線數;

如果是反向**,worker需要諒解客戶端2個連線數,加上worker和tomcat的兩個連線數;

第二個: nginx 有乙個 master,有四個 woker,每個 woker 支援最大的連線數 1024,支援的

最大併發數是多少?

 普通的靜態訪問最大併發數是: worker_connections * worker_processes /2,

 而如果是 http 作 為反向**來說,最大併發數量應該是 worker_connections *

worker_processes/4。

Oracle工作大概流程

以下例子大體上描述了oracle進行更新 update 時操作的主要步驟。在例子所描繪的oracle配置中,使用者和相關的服務程序處在不同的計算機 中,通過網路連線。在執行oracle的計算機上啟動乙個例項 這台計算機也被稱為主機 host 或資料庫伺服器 database server 執行應用程...

Nginx 與 FPM 的工作機制

fpm 是乙個 php 程序管理器,包含 master 程序和 worker 程序兩種程序 master 程序只有乙個,負責監聽埠,接收來自 web server 的請求,而 worker 程序則一般有多個 具體數量根據實際需要配置 每個程序內部都嵌入了乙個 php 直譯器,是 php 真正執行的地...

Nginx 與 FPM 的工作機制

要說 nginx 與 php 是如何協同工作的,首先得說 cgi common gateway inte ce 和 fastcgi 這兩個協議。cgi 是 web server 與後台語言互動的協議,有了這個協議,開發者可以使用任何語言處理 web server 發來的請求,動態的生成內容。但 cg...