Caddy
具有自动 HTTPS 的快速且可扩展的多平台 HTTP/3 Web 服务器
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 工具或您的计算机,我们提供这些说明只是为了方便;请自担风险学习如何使用自己的计算机并进行必要的调整。
使用我们的构建器工具,xcaddy
...
$ xcaddy build
...以下步骤是自动化的:
mkdir caddy
cd caddy
go mod init caddy
go get github.com/caddyserver/caddy/v2@version
替换 version
为 git 标记、提交或分支名称。_ "import/path/here"
go build
Caddy 网站的文档包括教程、快速入门指南、参考资料等。
我们建议所有用户(无论经验水平如何)都按照我们的入门指南来熟悉使用 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
请仅将我们的问题跟踪器用于错误报告和功能请求,即可操作的开发项目(支持问题通常会参考论坛)。
Matthew Holt 于 2014 年在杨百翰大学学习计算机科学时开始开发 Caddy。(之所以选择“Caddy”这个名称,是因为该软件有助于处理为 Web 提供服务的乏味、平凡的任务,并且也是将多个事物组织在一起的一个地方。)它很快成为第一个自动使用 HTTPS 的 Web 服务器,并且默认情况下,现在有数百个贡献者,已经服务了数万亿个 HTTPS 请求。
“Caddy”名称已注册商标。 该软件的名称是“Caddy”,而不是“Caddy Server”或“CaddyServer”。请称其为“Caddy”,或者,如果您想澄清,请称其为“Caddy Web 服务器”。Caddy 是 Stack Holdings GmbH 的注册商标。
Caddy 是Stack Holdings 公司ZeroSSL的一个项目。
Debian 软件包存储库托管由Cloudsmith慷慨提供。Cloudsmith 是唯一完全托管的、云原生的通用包管理解决方案,它使您的组织能够以任何格式、在任何地方创建、存储和共享包,完全有信心。