$ go run cmd/caddy/main.go
cmd/caddy/main.go (空壳)
-> cmd/main.go (注册rootCmd)
-> cmd/cobra.go (rootCmd实现)
以下是 rootCmd 中对Caddy的描述信息:
Caddy 是一个用 Go 语言编写的可扩展服务器平台,以其易用性和多功能性而著称。它核心功能在于管理配置,并通过静态链接模块在编译时提供实用功能。Caddy 的标准版本包含了通用模块,用于提供 HTTP 服务、TLS 加密传输层协议支持以及 PKI(公钥基础设施)应用,特别是自动管理证书的功能。
启动 Caddy
前台运行:使用命令 caddy run 在当前终端启动 Caddy,可以看到服务器的实时输出。
后台运行:使用 caddy start 命令让 Caddy 在后台运行。如果采用这种方式,需确保在关闭终端前使用 caddy stop 命令优雅地停止服务器。
配置方式
原生配置格式:Caddy 的配置文件本是 JSON 格式,但为了便于编写,通常会使用 Caddyfile 这种更简洁的语法,Caddy 会自动将其转换为 JSON。
配置适配器:Caddy 提供了配置适配器(如内置的 Caddyfile 适配器),可以将其他格式的配置转换成 JSON。还有许多第三方适配器可供选择。
命令行配置:一些特定命令(如 caddy file-server、caddy reverse-proxy)会根据命令行参数直接生成配置并运行,此时管理端口会被禁用。
管理与控制
管理接口:Caddy 内置了一个本地管理套接字,可以通过 RESTful HTTP API 动态更新配置。
控制命令:除了启动和停止外,还可以使用 caddy reload 来不重启服务器的情况下更新配置。
安装与权限
安装方法:推荐通过官方支持的包管理器安装 Caddy,也可以从官网下载或使用 xcaddy 从源代码编译带有特定插件的版本。
低端口权限:在 Linux 系统上,可能需要赋予 Caddy 绑定低端口(通常是 1024 以下)的权限,这可以通过 setcap 命令实现。
高级功能
子命令:提供了多种子命令以完成不同任务,比如管理存储、验证配置、添加或移除插件等。
实验性特性:包括添加或移除插件等功能被标记为实验性,意味着可能不够稳定或仍在开发中。
文档与支持
官方文档:详尽的文档资料可在 Caddy 官网上找到,涵盖安装指南、配置结构、语法以及模块文档等。
Caddy 的设计理念强调简单安全,能够快速部署网站和API,并且由于其模块化架构,通过添加插件能轻松扩展以满足多种需求,因此广受欢迎。
Link:https://www.cnblogs.com/farwish/p/18246672
标签:Caddy,caddy,适配器,配置,概览,go,rootCmd From: https://www.cnblogs.com/farwish/p/18246672