代码阅读工具;Sourcegraph
Caddy标准模块¶
caddy/modules/standard中初始化了caddy内建的标准模块
package standard
import (
// standard Caddy modules
_ "github.com/caddyserver/caddy/v2/caddyconfig/caddyfile"
_ "github.com/caddyserver/caddy/v2/modules/caddyhttp/standard"
_ "github.com/caddyserver/caddy/v2/modules/caddypki"
_ "github.com/caddyserver/caddy/v2/modules/caddypki/acmeserver"
_ "github.com/caddyserver/caddy/v2/modules/caddytls"
_ "github.com/caddyserver/caddy/v2/modules/caddytls/distributedstek"
_ "github.com/caddyserver/caddy/v2/modules/caddytls/standardstek"
_ "github.com/caddyserver/caddy/v2/modules/filestorage"
_ "github.com/caddyserver/caddy/v2/modules/logging"
_ "github.com/caddyserver/caddy/v2/modules/metrics"
)
从中可以看出自建模块有:
- logging: 日志的格式化、过滤、输出等功能
- caddyfile: caddy配置的解析、加载、格式化等功能
- filestorage: certmagic.FileStorage的简单封装
- metrics:
- caddypki:
- caddypki/acmeserver :Automated Certificate Management Environment Server(自动证书管理环境服务器)
- caddytls
- /caddytls/distributedstek
- caddytls/standardstek
- caddyhttp (非常核心的一个模块):
- caddyauth : 处理HTTP-AUTH相关
- encode:编码相关
- encode/gzip: 对content进行gzip压缩处理
- encode/zstd: 对content进行zstd研所处理
- fileserver: 静态文件服务处理
- headers: HTTP Headers 处理
- map: 是将源占位符映射到目标占位符的中间件
- push: 请求体处理中间件
- requestbody: 请求体处理中间件
- reverseproxy: 高度可配置的反向代理
- reverseproxy/fastcgi:
- rewrite: rewrite HTTP请求的中间件
- templates: 模板处理中间件。将响应体按照go-template文件继续宁render渲染处理(就像直接将markdown渲染成html,而不是响应原始的Markdown文本) )
Caddy 配置相关¶
caddyconfig作为caddy的一个moudle存在,注册使用
- 配置加载器:[caddy/caddyconfig/load.go]
- 配置适配器:[caddy/caddyconfig/configadpters.go]
- 配置实现(配置格式化)
- caddyfile
- httpcaddyfile