Nginx處理請求的流程

2021-10-04 15:10:52 字數 463 閱讀 8958

nginx處理請求過程

nginx使用乙個多程序模型來對外提供服務,乙個master程序和多個worker程序,master程序負責管理nginx本身和其他worker程序。

所有實際上的業務處理邏輯都在worker程序。worker程序中有乙個函式,執行無限迴圈,不斷處理收到的來自客戶端的請求,並進行處理,直到整個nginx服務被停止。

worker程序中,ngx_worker_process_cycle()函式就是這個無限迴圈的處理函式。在這個函式中,乙個請求的簡單處理流程如下:

作業系統提供的機制(例如epoll, kqueue等)產生相關的事件。

接收和處理這些事件,如是接受到資料,則產生更高層的request物件。

處理request的header和body。

產生響應,處理響應資料併發送回客戶端。

完成request的處理。

重新初始化定時器及其他事件,斷開連線。

Nginx請求處理流程

因為 nginx 執行在企業內網的最外層也就是邊緣節點,那麼他處理的的流量是其他應用伺服器處理流量的數倍,甚至幾個數量級,我們知道任何一種問題在不同的數量級下,他的解決方案是完全不同的,所以在 nginx 它所處理的應用場景中,所有的問題都會被放大,所以我們必須要去理解,為什麼 nginx 採用 m...

Nginx 的請求處理流程,你了解嗎?

之前我們已經講解了 nginx 的基礎內容,接下來我們開始介紹 nginx 的架構基礎。因為 nginx 執行在企業內網的最外層也就是邊緣節點,那麼他處理的的流量是其他應用伺服器處理流量的數倍,甚至幾個數量級,我們知道任何一種問題在不同的數量級下,他的解決方案是完全不同的,所以在 nginx 它所處...

nginx處理http請求完整流程

在nginx的worker程序啟動後,便阻塞在epoll wait函式 ngx epoll process events 等待http請求的到來,那麼當乙個http請求到來之時,nginx是如何作出相應的呢?下面介紹該過程。首先,在ngx event process init函式中,可看到rev h...