Caddy 是一个可扩展的服务器平台,默认使用 TLS。
最简单的跨平台入门方式是从 GitHub Releases 下载 Caddy 并将可执行文件放入 PATH 中。
有关其他安装说明,请参阅 我们的在线文档。
要求:
注意: 这些步骤 不会嵌入正确的版本信息。为此,请按照下一节中的说明进行操作。
$ git clone "https://github.com/caddyserver/caddy.git"
$ cd caddy/cmd/caddy/
$ go build
当您运行 Caddy 时,除非在配置中另有指定,它可能会尝试绑定到低端口。如果您的操作系统需要提升权限才能做到这一点,您需要授予新二进制文件相应的权限。在 Linux 上,可以通过 sudo setcap cap_net_bind_service=+ep ./caddy 轻松完成。
如果您更喜欢使用仅创建临时二进制文件的 go run,您仍然可以使用附带的 setcap.sh 来完成此操作:
$ go run -exec ./setcap.sh main.go
如果您不想为 setcap 输入密码,请使用 sudo visudo 编辑您的 sudoers 文件,并允许您的用户帐户无需密码运行该命令,例如:
username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap
将 username 替换为您的实际用户名。请小心操作,只有了解自己在做什么时才这样做!我们仅负责记录如何使用 Caddy,而不是 Go 工具或您的计算机,我们提供这些说明仅为方便起见;请自行承担风险学习如何使用自己的计算机,并做出任何必要的调整。
然后您可以运行所有模块或特定模块的测试:
$ go test ./...
$ go test ./modules/caddyhttp/tracing/
使用 我们的构建工具 xcaddy...
$ xcaddy build
...以下步骤是自动化的:
mkdir caddycd caddygo mod init caddygo get github.com/caddyserver/caddy/v2@version,将 version 替换为 git 标签、提交或分支名称。_ "import/path/here"go build -tags=nobadger,nomysql,nopgxCaddy 网站 有包含教程、快速入门指南、参考等内容的文档。
我们建议所有用户——无论经验水平如何——阅读我们的 入门指南 以熟悉使用 Caddy。
如果您只有一分钟时间,网站上有多个快速入门教程 可供选择!不过,在完成快速入门教程后,请阅读更多文档以了解该软件的工作原理。🙂
Caddy 最常被用作 HTTPS 服务器,但它也适用于任何长时间运行的 Go 程序。首先,它是一个运行 Go 应用的平台。Caddy 的“应用”就是作为 Caddy 模块实现的 Go 程序。两个应用——tls 和 http——是 Caddy 标准默认的。
Caddy 应用立即受益于 自动化文档、通过 API 优雅地在线 更改配置,以及与其他 Caddy 应用的统一。
尽管 JSON 是 Caddy 的原生配置语言,但 Caddy 可以接受来自 配置适配器 的输入,这些适配器本质上可以将您选择的任何配置格式转换为 JSON:Caddyfile、JSON 5、YAML、TOML、NGINX 配置等等。
配置 Caddy 的主要方式是通过 其 API,但如果您更喜欢配置文件,命令行界面 也支持它们。
与任何现有的 Web 服务器相比,Caddy 提供了前所未有的控制级别。在 Caddy 中,您通常设置内存中初始化类型的实际值,这些值驱动从 HTTP 处理程序和 TLS 握手到存储介质的一切。Caddy 也是极其可扩展的,拥有强大的插件系统,比其它 Web 服务器有巨大改进。
为了驾驭这种设计的力量,您需要知道配置文档的结构。请参阅 我们的文档网站 了解关于 Caddy 的配置结构 的详细信息。
几乎所有的 Caddy 配置都包含在一个单一的配置文档中,而不是像其他 Web 服务器那样分散在 CLI 标志、环境变量和配置文件中。这使得管理您的服务器配置更加直接,并减少了隐藏的变量/因素。
我们的网站有完整的文档:
文档也是开源的。您可以在这里贡献:https://github.com/caddyserver/website
我们建议使用 Caddy 的公司通过 Ardan Labs 提前签订支持合同,以便在需要时获得帮助。
赞助 大有裨益!我们可以为赞助者提供私人帮助。如果 Caddy 对贵公司有益,请考虑赞助。这不仅有助于资助全职工作以确保项目的长期发展,还能为贵公司提供所需的资源、支持和折扣;同时也能向贵公司的客户和潜在客户展示良好的形象!
个人可以在我们的社区论坛 https://caddy.community 上免费交换帮助。请记住,人们是在业余时间出于善意提供帮助。获取帮助的最佳方式是先帮助别人!
请仅将我们的 问题跟踪器 用于错误报告和功能请求,即可操作的开发事项(支持问题通常会转至论坛)。
Matthew Holt 于 2014 年在杨百翰大学学习计算机科学时开始开发 Caddy。(选择“Caddy”这个名称是因为该软件有助于处理繁琐的 Web 服务任务,并且是一个将多个事物组织在一起的统一场所。)它很快成为第一个自动且默认使用 HTTPS 的 Web 服务器,现在拥有数百名贡献者,并服务了数万亿次 HTTPS 请求。
“Caddy”名称是商标。 该软件的名称是“Caddy”,而不是“Caddy Server”或“CaddyServer”。请称其为“Caddy”,或者如果您想澄清,可以称为“the Caddy web server”。Caddy 是 Stack Holdings GmbH 的注册商标。
Caddy 是 ZeroSSL 的一个项目,ZeroSSL 是 HID Global 旗下公司。
Debian 软件包仓库托管由 Cloudsmith 慷慨提供。Cloudsmith 是唯一完全托管、云原生、通用的包管理解决方案,使您的组织能够以任何格式、在任何地方、充满信心地创建、存储和共享包。