盘锦嗡必金融服务有限公司

免費注冊

Caddy核心架構(1)

作者: 速優(yōu)云解決方案架構師
閱讀數:153
更新時間:2024-02-23 20:34:49
Caddy核心架構(1)

歡迎使用基于AI大模型的All In One知識管理應用!

支持Markdown、思維導圖、演示Slide PPT等多種功能,并且還提供任務管理和項目管理功能。

立即注冊,開啟高效管理之旅!

p>core庫,即Caddy的“核心”,主要管理配置。它可以Run()一個新的配置或Stop()一個正在運行的配置。它還提供了供模塊使用的各種實用程序、類型和值。

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

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

Caddy的核心知道如何使用這些領域:

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

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

當一個應用模塊啟動時,它會啟動應用的模塊生命周期。

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


有兩種模塊:主機模塊和客戶模塊。

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

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

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

加載
配置和驗證
使用
清理
Caddy啟動模塊生命周期時,配置首先被加載,初始化所有配置的應用模塊。從這里開始,每一個應用模塊都要走完剩下的路。

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

提供階段??
這個階段是大多數設置工作進行的階段。模塊在加載后有機會自行準備。

由于JSON編碼中的任何屬性都已經被解碼,因此這里只需要進行額外的設置。配置期間最常見的任務是設置客戶模塊。換句話說,配置一個主機模塊也會導致配置它的客戶模塊,一直到最后。

您可以通過遍歷我們文檔中的Caddy的JSON結構來對此有所了解。任何你看到{•••}的地方都可以使用來賓模塊;當你點擊其中一個,你可以繼續(xù)探索,直到沒有更多的來賓模塊。

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

驗證也可以在準備階段進行。如果一個模塊的配置無效,會返回一個錯誤,從而終止整個配置加載過程。

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

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

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

發(fā)表評論

評論列表

暫時沒有評論,有什么想聊的?

低代碼協同辦公系統(tǒng)定制

低代碼協同辦公系統(tǒng)定制

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



熱推產品-全域低代碼平臺

會Excel就能開發(fā)軟件

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

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

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

徹底解析:API接口是什么意思?為何它在現代軟件開發(fā)中如此重要?

徹底解析:API接口是什么意思?為何它在現代軟件開發(fā)中如此重要? 一、API接口的基本概念與分類 1.1 API接口的定義與核心要素 API(Application Programming Interface,應

...
2024-08-19 10:57:34
API密鑰怎么獲?。恳徊讲浇棠爿p松搞定

一、概述:API密鑰獲取的重要性與流程概覽 1.1 API密鑰的基本概念與作用 1.1.1 定義API密鑰 API密鑰,全稱為Application Programming Interface Key,是一種用于身份驗證和

...
2024-08-19 10:57:34
徹底解析:'API是什么意思',為何它在軟件開發(fā)中如此重要?

徹底解析:'API是什么意思',為何它在軟件開發(fā)中如此重要? 一、API基礎概念解析 1.1 API的定義與構成 API,全稱Application Programming Interface(應用程序編程接口),

...
2024-08-19 10:57:34

Caddy核心架構(1)相關資訊

與Caddy核心架構(1)相關資訊,您可以對低代碼協同辦公系統(tǒng)定制了解更多

速優(yōu)云

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

×

?? 微信聊 -->

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

售前電話:15050465281

微信聊 -->

速優(yōu)物聯PerfCloud官方微信
蒲城县| 垫江县| 盐城市| 广安市| 汉阴县| 伊宁市| 葵青区| 麟游县| 田阳县| 墨玉县| 临清市| 大洼县| 阿拉善盟| 德江县| 绵阳市| 侯马市| 惠来县| 新竹县| 溆浦县| 德江县| 霍城县| 海淀区| 遂平县| 吴桥县| 建平县| 黄浦区| 齐齐哈尔市| 乡城县| 平昌县| 盐源县| 金堂县| 屏南县| 泽州县| 丁青县| 延长县| 清河县| 安陆市| 山丹县| 凌源市| 四川省| 古交市|