Nginx handler 模塊簡介

2022-03-23 15:39 更新

相信大家在看了前一章的模塊概述以后,都對(duì) Nginx 的模塊有了一個(gè)基本的認(rèn)識(shí)?;旧献鳛榈谌介_發(fā)者最可能開發(fā)的就是三種類型的模塊,即 handler,filter 和 load-balancer。Handler 模塊就是接受來自客戶端的請(qǐng)求并產(chǎn)生輸出的模塊。有些地方說 upstream 模塊實(shí)際上也是一種 handler 模塊,只不過它產(chǎn)生的內(nèi)容來自于從后端服務(wù)器獲取的,而非在本機(jī)產(chǎn)生的。

在上一章提到,配置文件中使用 location 指令可以配置 content handler 模塊,當(dāng) Nginx 系統(tǒng)啟動(dòng)的時(shí)候,每個(gè) handler 模塊都有一次機(jī)會(huì)把自己關(guān)聯(lián)到對(duì)應(yīng)的 location上。如果有多個(gè) handler 模塊都關(guān)聯(lián)了同一個(gè) location,那么實(shí)際上只有一個(gè) handler 模塊真正會(huì)起作用。當(dāng)然大多數(shù)情況下,模塊開發(fā)人員都會(huì)避免出現(xiàn)這種情況。

handler 模塊處理的結(jié)果通常有三種情況: 處理成功,處理失?。ㄌ幚淼臅r(shí)候發(fā)生了錯(cuò)誤)或者是拒絕去處理。在拒絕處理的情況下,這個(gè) location 的處理就會(huì)由默認(rèn)的 handler 模塊來進(jìn)行處理。例如,當(dāng)請(qǐng)求一個(gè)靜態(tài)文件的時(shí)候,如果關(guān)聯(lián)到這個(gè) location 上的一個(gè) handler 模塊拒絕處理,就會(huì)由默認(rèn)的 ngx_http_static_module 模塊進(jìn)行處理,該模塊是一個(gè)典型的 handler 模塊。

本章主要講述的是如何編寫 handler 模塊,在研究 handler 模塊編寫之前先來了解一下模塊的一些基本數(shù)據(jù)結(jié)構(gòu)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)