免費注冊

Caddy核心架構(1)

作者: 速優(yōu)云解決方案架構師
閱讀數:153
更新時(shí)間:2024-02-23 20:34:49
Caddy核心架構(1)
p>core庫,即Caddy的“核心”,主要管理配置。它可以Run()一個(gè)新的配置或Stop()一個(gè)正在運行的配置。它還提供了供模塊使用的各種實(shí)用程序、類(lèi)型和值。

模塊做其他的事情。許多模塊內建在Caddy,這被稱(chēng)為標準模塊。它們被認為是對大多數用戶(hù)最有用的。

在其核心,Caddy僅僅加載一個(gè)初始配置(“config”),或者,如果沒(méi)有初始配置,打開(kāi)一個(gè)套接字來(lái)接受新的配置。

Caddy的核心知道如何使用這些領(lǐng)域:

admin,它可以設置管理API和管理過(guò)程
日志以便它可以發(fā)出日志
但其他頂級領(lǐng)域(如應用程序)對Caddy的核心是不透明的。事實(shí)上,所有Caddy知道如何處理應用中的字節是將它們反序列化成一個(gè)接口類(lèi)型,它可以調用兩個(gè)方法:

Start ()
Stop ()
…就是這樣。當配置加載時(shí),它會(huì )在每個(gè)應用程序上調用Start(),當配置卸載時(shí),它會(huì )在每個(gè)應用程序上調用Stop()。

當一個(gè)應用模塊啟動(dòng)時(shí),它會(huì )啟動(dòng)應用的模塊生命周期。

如果你是一個(gè)構建Caddy模塊的程序員,你可以在我們的擴展Caddy指南中找到類(lèi)似的信息,但是更多的關(guān)注于代碼。


有兩種模塊:主機模塊和客戶(hù)模塊。

宿主模塊(或“父”模塊)是那些加載其他模塊的模塊。

來(lái)賓模塊(或“子”模塊)是那些被加載的模塊。所有模塊都是來(lái)賓模塊——甚至是應用模塊。

模塊被加載,被準備和驗證,被使用,然后被清理,按照以下順序:

加載
配置和驗證
使用
清理
Caddy啟動(dòng)模塊生命周期時(shí),配置首先被加載,初始化所有配置的應用模塊。從這里開(kāi)始,每一個(gè)應用模塊都要走完剩下的路。

加載階段??
加載模塊涉及到將其JSON字節反序列化為內存中的類(lèi)型化值。這是……基本上就是這樣。它只是將JSON解碼為一個(gè)值。

提供階段??
這個(gè)階段是大多數設置工作進(jìn)行的階段。模塊在加載后有機會(huì )自行準備。

由于JSON編碼中的任何屬性都已經(jīng)被解碼,因此這里只需要進(jìn)行額外的設置。配置期間最常見(jiàn)的任務(wù)是設置客戶(hù)模塊。換句話(huà)說(shuō),配置一個(gè)主機模塊也會(huì )導致配置它的客戶(hù)模塊,一直到最后。

您可以通過(guò)遍歷我們文檔中的Caddy的JSON結構來(lái)對此有所了解。任何你看到{•••}的地方都可以使用來(lái)賓模塊;當你點(diǎn)擊其中一個(gè),你可以繼續探索,直到?jīng)]有更多的來(lái)賓模塊。

其他常見(jiàn)的配置任務(wù)包括設置將在模塊生命周期內使用的內部值,或標準化輸入。例如,http.matchers。remote_ip模塊使用準備階段從JSON接收到的字符串輸入中解析CIDR值。這樣,它就不必在每個(gè)HTTP請求期間都執行此操作,因此效率更高。

驗證也可以在準備階段進(jìn)行。如果一個(gè)模塊的配置無(wú)效,會(huì )返回一個(gè)錯誤,從而終止整個(gè)配置加載過(guò)程。

使用階段??
一旦客戶(hù)模塊被供應和驗證,它就可以被它的主機模塊使用。這到底意味著(zhù)什么取決于每個(gè)主模塊。

每個(gè)模塊都有一個(gè)ID,該ID由一個(gè)名稱(chēng)空間和該名稱(chēng)空間中的一個(gè)名稱(chēng)組成。例如,http.handlers。reverse_proxy是一個(gè)HTTP處理程序,因為它在HTTP。處理程序名稱(chēng)空間,它的名稱(chēng)是reverse_proxy。http中的所有模塊。處理程序名稱(chēng)空間滿(mǎn)足主機模塊已知的相同接口。因此,http應用程序知道如何加載和使用這些類(lèi)型的模塊。

清理階段??
當需要停止配置時(shí),所有模塊都會(huì )被卸載。如果一個(gè)模塊分配了任何應該釋放的資源,它就有機會(huì )在清理階段這樣做。

發(fā)表評論

評論列表

暫時(shí)沒(méi)有評論,有什么想聊的?

低代碼協(xié)同辦公系統定制

低代碼協(xié)同辦公系統定制

釋放創(chuàng )造力,簡(jiǎn)化辦公。低代碼定制OA協(xié)同系統,高效協(xié)同助您一展宏圖。



熱推產(chǎn)品-全域低代碼平臺

會(huì )Excel就能開(kāi)發(fā)軟件

全域低代碼平臺,可視化拖拉拽/導入Excel,就可以開(kāi)發(fā)小程序、管理系統、物聯(lián)網(wǎng)、ERP、CRM等應用

Caddy核心架構(1)最新資訊

分享關(guān)于大數據最新動(dòng)態(tài),數據分析模板分享,如何使用低代碼構建大數據管理平臺和低代碼平臺開(kāi)發(fā)軟件

如何高效利用rag和微調技術(shù)優(yōu)化模型性能?

如何高效利用rag和微調技術(shù)優(yōu)化模型性能? 一、引言:rag與微調技術(shù)概述 1.1 rag技術(shù)簡(jiǎn)介 Rag技術(shù),即關(guān)系抽取與生成(Relation Extraction and Generation)技術(shù),是自然

...
2024-07-27 12:05:31
apaas和bpaas:如何為企業(yè)帶來(lái)更高效的業(yè)務(wù)流程自動(dòng)化?

apaas和bpaas:如何為企業(yè)帶來(lái)更高效的業(yè)務(wù)流程自動(dòng)化? 一、APAAS與BPAAS概述 1.1 APAAS(應用程序平臺即服務(wù))的定義與特點(diǎn) APAAS(應用程序平臺即服務(wù))是一種云計算服

...
2024-07-27 11:57:17
IoT物聯(lián)網(wǎng)平臺 是什么?一文帶你全面了解其定義、功能與應用

IoT物聯(lián)網(wǎng)平臺 是什么?一文帶你全面了解其定義、功能與應用 一、IoT物聯(lián)網(wǎng)平臺的定義與概述 1.1 IoT物聯(lián)網(wǎng)平臺的基本概念 IoT物聯(lián)網(wǎng)平臺,即Internet of Things平臺,是連

...
2024-07-27 11:57:17

速優(yōu)云

讓監測“簡(jiǎn)單一點(diǎn)”

×

?? 微信聊 -->

銷(xiāo)售溝通:17190186096(微信同號)

售前電話(huà):15050465281

微信聊 -->

速優(yōu)物聯(lián)PerfCloud官方微信
精品国产欧美SV在线观看|亚洲永久精品线看|女同性另类一区二区三区视频|性做久久久久久久|亚洲中文字幕无码天然素人在线