最简单、跨平台的方式是从GitHub Releases下载Caddy并将可执行文件放置在你的PATH中。
有关其他安装说明,请参见我们的在线文档。
要求:
注意: 这些步骤不会嵌入正确的版本信息。如果需要版本信息,请按照下一节的说明进行操作。
$ git clone "https://github.com/caddyserver/caddy.git"
$ cd caddy/cmd/caddy/
$ go build
当你运行 Caddy 时,它可能会尝试绑定到低端口(例如 80 或 443),除非在配置中另行指定。如果你的操作系统要求提升权限才能进行此操作,你需要给予新的二进制文件相应的权限。在 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 -tags=nobadger,nomysql,nopgx
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,但如果你更喜欢配置文件,命令行界面 也支持这些文件。
Caddy 提供了前所未有的控制能力,相较于其他任何 Web 服务器。在 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 服务中的繁琐、单调任务,并且它也是一个将多个功能组织在一起的地方。)Caddy 很快成为第一个自动并默认使用 HTTPS 的 Web 服务器,现在拥有成百上千的贡献者,并且已经服务了数万亿次 HTTPS 请求。
“Caddy”是商标。 软件的名称是 “Caddy”,而不是 “Caddy Server” 或 “CaddyServer”。请称它为 “Caddy”,或者如果需要澄清,可以称其为 “Caddy Web Server”。Caddy 是 Stack Holdings GmbH 的注册商标。
Caddy 是 ZeroSSL,Stack Holdings 公司的一个项目。
Debian 包管理仓库托管由 Cloudsmith 提供。Cloudsmith 是唯一的完全托管的、云原生的、通用的包管理解决方案,可以让你的组织创建、存储和分享任何格式的包,并能够放心地将它们传输到任何地方。