在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Nginx 的模塊化體系結(jié)構(gòu)
示例: hello handler 模塊
什么是 Nginx
handler 模塊的掛載
Nginx 特點(diǎn)
handler 模塊簡(jiǎn)介
初探 Nginx 架構(gòu)
Nginx 的模塊化體系結(jié)構(gòu)
更多 handler 模塊示例分析
Nginx 基礎(chǔ)概念
upstream 模塊簡(jiǎn)介
Nginx 的請(qǐng)求處理
過濾模塊簡(jiǎn)介
基本數(shù)據(jù)結(jié)構(gòu)
模塊的基本結(jié)構(gòu)
負(fù)載均衡模塊
過濾模塊的分析
core 模塊
handler 模塊的基本結(jié)構(gòu)
Nginx 的配置系統(tǒng)
handler 的編寫步驟
handler 模塊的編譯和使用
event 模塊

Nginx 的模塊化體系結(jié)構(gòu)

Nginx 的內(nèi)部結(jié)構(gòu)是由核心部分和一系列的功能模塊所組成。這樣劃分是為了使得每個(gè)模塊的功能相對(duì)簡(jiǎn)單,便于開發(fā),同時(shí)也便于對(duì)系統(tǒng)進(jìn)行功能擴(kuò)展。為了便于描述,下文中我們將使用 Nginx core 來稱呼 Nginx 的核心功能部分。

Nginx 提供了 Web 服務(wù)器的基礎(chǔ)功能,同時(shí)提供了 Web 服務(wù)反向代理,Email 服務(wù)反向代理功能。Nginx core實(shí)現(xiàn)了底層的通訊協(xié)議,為其他模塊和 Nginx 進(jìn)程構(gòu)建了基本的運(yùn)行時(shí)環(huán)境,并且構(gòu)建了其他各模塊的協(xié)作基礎(chǔ)。除此之外,或者說大部分與協(xié)議相關(guān)的,或者應(yīng)用相關(guān)的功能都是在這些模塊中所實(shí)現(xiàn)的。

模塊概述

Nginx 將各功能模塊組織成一條鏈,當(dāng)有請(qǐng)求到達(dá)的時(shí)候,請(qǐng)求依次經(jīng)過這條鏈上的部分或者全部模塊,進(jìn)行處理。每個(gè)模塊實(shí)現(xiàn)特定的功能。例如,實(shí)現(xiàn)對(duì)請(qǐng)求解壓縮的模塊,實(shí)現(xiàn) SSI 的模塊,實(shí)現(xiàn)與上游服務(wù)器進(jìn)行通訊的模塊,實(shí)現(xiàn)與 FastCGI 服務(wù)進(jìn)行通訊的模塊。

有兩個(gè)模塊比較特殊,他們居于 Nginx core 和各功能模塊的中間。這兩個(gè)模塊就是 http 模塊和 mail 模塊。這 2 個(gè)模塊在 Nginx core 之上實(shí)現(xiàn)了另外一層抽象,處理與 HTTP 協(xié)議和 Email 相關(guān)協(xié)議(SMTP/POP3/IMAP)有關(guān)的事件,并且確保這些事件能被以正確的順序調(diào)用其他的一些功能模塊。

目前 HTTP 協(xié)議是被實(shí)現(xiàn)在 http 模塊中的,但是有可能將來被剝離到一個(gè)單獨(dú)的模塊中,以擴(kuò)展 Nginx 支持 SPDY 協(xié)議。

模塊的分類

Nginx 的模塊根據(jù)其功能基本上可以分為以下幾種類型:

  • event module: 搭建了獨(dú)立于操作系統(tǒng)的事件處理機(jī)制的框架,及提供了各具體事件的處理。包括 ngx_events_module, ngx_event_core_module和ngx_epoll_module 等。Nginx 具體使用何種事件處理模塊,這依賴于具體的操作系統(tǒng)和編譯選項(xiàng)。

  • phase handler: 此類型的模塊也被直接稱為 handler 模塊。主要負(fù)責(zé)處理客戶端請(qǐng)求并產(chǎn)生待響應(yīng)內(nèi)容,比如 ngx_http_static_module 模塊,負(fù)責(zé)客戶端的靜態(tài)頁面請(qǐng)求處理并將對(duì)應(yīng)的磁盤文件準(zhǔn)備為響應(yīng)內(nèi)容輸出。

  • output filter: 也稱為 filter 模塊,主要是負(fù)責(zé)對(duì)輸出的內(nèi)容進(jìn)行處理,可以對(duì)輸出進(jìn)行修改。例如,可以實(shí)現(xiàn)對(duì)輸出的所有 html 頁面增加預(yù)定義的 footbar 一類的工作,或者對(duì)輸出的圖片的 URL 進(jìn)行替換之類的工作。

  • upstream: upstream 模塊實(shí)現(xiàn)反向代理的功能,將真正的請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器上,并從后端服務(wù)器上讀取響應(yīng),發(fā)回客戶端。upstream 模塊是一種特殊的 handler,只不過響應(yīng)內(nèi)容不是真正由自己產(chǎn)生的,而是從后端服務(wù)器上讀取的。

  • load-balancer: 負(fù)載均衡模塊,實(shí)現(xiàn)特定的算法,在眾多的后端服務(wù)器中,選擇一個(gè)服務(wù)器出來作為某個(gè)請(qǐng)求的轉(zhuǎn)發(fā)服務(wù)器。