W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
相信大家在看了前一章的模塊概述以后,都對 Nginx 的模塊有了一個(gè)基本的認(rèn)識?;旧献鳛榈谌介_發(fā)者最可能開發(fā)的就是三種類型的模塊,即 handler,filter 和 load-balancer。Handler 模塊就是接受來自客戶端的請求并產(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)到對應(yīng)的 location上。如果有多個(gè) handler 模塊都關(guān)聯(lián)了同一個(gè) location,那么實(shí)際上只有一個(gè) handler 模塊真正會(huì)起作用。當(dāng)然大多數(shù)情況下,模塊開發(fā)人員都會(huì)避免出現(xiàn)這種情況。
handler 模塊處理的結(jié)果通常有三種情況: 處理成功,處理失敗(處理的時(shí)候發(fā)生了錯(cuò)誤)或者是拒絕去處理。在拒絕處理的情況下,這個(gè) location 的處理就會(huì)由默認(rèn)的 handler 模塊來進(jìn)行處理。例如,當(dā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)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: