模塊做其他的事情。許多模塊內(nèi)建在Caddy,這被稱為標(biāo)準(zhǔn)模塊。它們被認(rèn)為是對(duì)大多數(shù)用戶最有用的。
在其核心,Caddy僅僅加載一個(gè)初始配置(“config”),或者,如果沒(méi)有初始配置,打開(kāi)一個(gè)套接字來(lái)接受新的配置。
Caddy的核心知道如何使用這些領(lǐng)域:
admin,它可以設(shè)置管理API和管理過(guò)程
日志以便它可以發(fā)出日志
但其他頂級(jí)領(lǐng)域(如應(yīng)用程序)對(duì)Caddy的核心是不透明的。事實(shí)上,所有Caddy知道如何處理應(yīng)用中的字節(jié)是將它們反序列化成一個(gè)接口類型,它可以調(diào)用兩個(gè)方法:
Start ()
Stop ()
…就是這樣。當(dāng)配置加載時(shí),它會(huì)在每個(gè)應(yīng)用程序上調(diào)用Start(),當(dāng)配置卸載時(shí),它會(huì)在每個(gè)應(yīng)用程序上調(diào)用Stop()。
當(dāng)一個(gè)應(yīng)用模塊啟動(dòng)時(shí),它會(huì)啟動(dòng)應(yīng)用的模塊生命周期。
如果你是一個(gè)構(gòu)建Caddy模塊的程序員,你可以在我們的擴(kuò)展Caddy指南中找到類似的信息,但是更多的關(guān)注于代碼。
有兩種模塊:主機(jī)模塊和客戶模塊。
宿主模塊(或“父”模塊)是那些加載其他模塊的模塊。
來(lái)賓模塊(或“子”模塊)是那些被加載的模塊。所有模塊都是來(lái)賓模塊——甚至是應(yīng)用模塊。
模塊被加載,被準(zhǔn)備和驗(yàn)證,被使用,然后被清理,按照以下順序:
加載
配置和驗(yàn)證
使用
清理
Caddy啟動(dòng)模塊生命周期時(shí),配置首先被加載,初始化所有配置的應(yīng)用模塊。從這里開(kāi)始,每一個(gè)應(yīng)用模塊都要走完剩下的路。
加載階段??
加載模塊涉及到將其JSON字節(jié)反序列化為內(nèi)存中的類型化值。這是……基本上就是這樣。它只是將JSON解碼為一個(gè)值。
提供階段??
這個(gè)階段是大多數(shù)設(shè)置工作進(jìn)行的階段。模塊在加載后有機(jī)會(huì)自行準(zhǔn)備。
由于JSON編碼中的任何屬性都已經(jīng)被解碼,因此這里只需要進(jìn)行額外的設(shè)置。配置期間最常見(jiàn)的任務(wù)是設(shè)置客戶模塊。換句話說(shuō),配置一個(gè)主機(jī)模塊也會(huì)導(dǎo)致配置它的客戶模塊,一直到最后。
您可以通過(guò)遍歷我們文檔中的Caddy的JSON結(jié)構(gòu)來(lái)對(duì)此有所了解。任何你看到{•••}的地方都可以使用來(lái)賓模塊;當(dāng)你點(diǎn)擊其中一個(gè),你可以繼續(xù)探索,直到?jīng)]有更多的來(lái)賓模塊。
其他常見(jiàn)的配置任務(wù)包括設(shè)置將在模塊生命周期內(nèi)使用的內(nèi)部值,或標(biāo)準(zhǔn)化輸入。例如,http.matchers。remote_ip模塊使用準(zhǔn)備階段從JSON接收到的字符串輸入中解析CIDR值。這樣,它就不必在每個(gè)HTTP請(qǐng)求期間都執(zhí)行此操作,因此效率更高。
驗(yàn)證也可以在準(zhǔn)備階段進(jìn)行。如果一個(gè)模塊的配置無(wú)效,會(huì)返回一個(gè)錯(cuò)誤,從而終止整個(gè)配置加載過(guò)程。
使用階段??
一旦客戶模塊被供應(yīng)和驗(yàn)證,它就可以被它的主機(jī)模塊使用。這到底意味著什么取決于每個(gè)主模塊。
每個(gè)模塊都有一個(gè)ID,該ID由一個(gè)名稱空間和該名稱空間中的一個(gè)名稱組成。例如,http.handlers。reverse_proxy是一個(gè)HTTP處理程序,因?yàn)樗贖TTP。處理程序名稱空間,它的名稱是reverse_proxy。http中的所有模塊。處理程序名稱空間滿足主機(jī)模塊已知的相同接口。因此,http應(yīng)用程序知道如何加載和使用這些類型的模塊。
清理階段??
當(dāng)需要停止配置時(shí),所有模塊都會(huì)被卸載。如果一個(gè)模塊分配了任何應(yīng)該釋放的資源,它就有機(jī)會(huì)在清理階段這樣做。
暫時(shí)沒(méi)有評(píng)論,有什么想聊的?
揭秘社區(qū)團(tuán)購(gòu)平臺(tái)盈利之道:從模式創(chuàng)新到成本控制 一、社區(qū)團(tuán)購(gòu)平臺(tái)模式創(chuàng)新解析 1.1 團(tuán)購(gòu)模式概述與興起背景 社區(qū)團(tuán)購(gòu)作為一種新興的電商模式,其興起主要得益于移動(dòng)互聯(lián)
...一、引言:小區(qū)物業(yè)管理系統(tǒng)的重要性與日常難題概述 1.1 小區(qū)物業(yè)管理系統(tǒng)的作用與意義 在現(xiàn)代城市化進(jìn)程中,小區(qū)物業(yè)管理系統(tǒng)作為連接物業(yè)公司與業(yè)主的橋梁,其重要性日益
...一、概述如何優(yōu)化社會(huì)信息消防服務(wù)系統(tǒng)以提升應(yīng)急響應(yīng)效率 1.1 消防服務(wù)系統(tǒng)現(xiàn)狀與挑戰(zhàn)分析 1.1.1 當(dāng)前社會(huì)信息消防服務(wù)系統(tǒng)的構(gòu)成 當(dāng)前的社會(huì)信息消防服務(wù)系統(tǒng)主要由報(bào)警
...?? 微信聊 -->
銷售溝通:17190186096(微信同號(hào))
售前電話:15050465281
微信聊 -->
阿帥: 我們經(jīng)常會(huì)遇到表格內(nèi)容顯示不完整的問(wèn)題。 回復(fù)
理理: 使用自動(dòng)換行功能,以及利用條件格式和數(shù)據(jù)分析工具等。回復(fù)