nginx由核心和模組組成的,其中核心完成的工作比較簡單,僅僅通過查詢配置檔案見客戶端請求對映到乙個location block,然後又這個location block中所配置的每個指令將會啟動不同的模組去完成相應的工作。
一、nginx模組
(1)從結構上nginx分為核心模組,基礎模組和第三方模組,例如
http模組、mail模組、event模組屬於核心模組;
http access模組、http rewrite模組、http fastcgi模組、http proxy模組屬於基礎模組;
htpp upstream request hash模組屬於第三方模組;
(2)從功能上分為handlers、proxies、filters三類
handlers只能有乙個,它直接處理請求並進行輸出內容和修改headers資訊等操作;
proxies這些模組主要與後端一些服務比如real server等進行互動,實現服務**和負載均衡等功能;
filters模組主要是對輸出的內容進行修改,最後由nginx輸出;
二、nginx模組常規處理http請求和響應的過程,見下圖
Nginx請求處理流程
因為 nginx 執行在企業內網的最外層也就是邊緣節點,那麼他處理的的流量是其他應用伺服器處理流量的數倍,甚至幾個數量級,我們知道任何一種問題在不同的數量級下,他的解決方案是完全不同的,所以在 nginx 它所處理的應用場景中,所有的問題都會被放大,所以我們必須要去理解,為什麼 nginx 採用 m...
Nginx處理請求的流程
nginx處理請求過程 nginx使用乙個多程序模型來對外提供服務,乙個master程序和多個worker程序,master程序負責管理nginx本身和其他worker程序。所有實際上的業務處理邏輯都在worker程序。worker程序中有乙個函式,執行無限迴圈,不斷處理收到的來自客戶端的請求,並進...
nginx接受請求連線事件模組流程
作業系統核心 三次握手,當使用者發來乙個 syn 報文時,系統核心會返回乙個syn ack確認給客戶端,當客戶端再次傳送ack來的時候,此時就已經建立了三次握手.完成三次握手後,作業系統會根據系統內的負載均衡演算法來選中乙個worker執行緒,它會返回乙個建立連線的epoll wait的連線控制代碼...