caddy服务器配置教程

它是什么Caddy 是用 Go 编写的开源 Web 服务器,支持 HTTP/2,默认启用 HTTPS。

Caddy 是用 Go 编写的开源 Web 服务器,支持 HTTP/2,默认启用 HTTPS。本页整理其配置方式(Caddyfile、原生 JSON、JSON API)、Debian/Ubuntu 安装命令、启动与重载流程、与 Nginx 的差异及常见问题,适合需要快速搭建反向代理与自动证书管理的运维与开发者参考。

👤
作者:谢林峰 | 更新:2026-10-03
软件信息
更新 2026-10-03

详细介绍

简介

Caddy 是一个使用 Go 语言编写的开源 Web 服务器,支持 HTTP/2,并使用 Go 标准库提供 HTTP 功能。它要解决的问题是:传统 Web 服务器配置项繁琐、证书管理需要额外工具维护,导致部署一个站点要反复查阅文档。Caddy 把常见路径压缩到一份 Caddyfile 里,同时保留原生 JSON 配置与 JSON API 两条更强的控制通道,默认启用 HTTPS。它适合自建服务器的个人用户、需要反向代理多个自托管应用的团队,以及希望把 Web 服务器管理做成自动化、集成发布流程的开发者。核心优势是配置层次清晰:想要快就写 Caddyfile,想要精细控制就用 JSON,想要动态调整就调 API。

核心功能

  • 简洁配置:通过 Caddyfile 描述站点与路由,语法结构直观,是大多数人首选的配置方式。
  • 原生 JSON 配置:Caddy 内部使用 JSON 表达完整配置,可覆盖 Caddyfile 未暴露的细节。
  • JSON API 动态配置:配置能被动态修改且可以导出来,不需要重启进程即可调整运行中的配置。
  • 配置适配器:如果已有其他格式的配置,可通过配置适配器转换后再交给 Caddy 使用。
  • 默认启用 HTTPS:Caddy 使用 Go 标准库提供 HTTP 功能,HTTPS 作为默认行为,减少证书相关步骤。
  • 反向代理:可作为反向代理,让多个自托管应用共用一个公网 IP 地址。
  • 跨平台:项目定位为多平台、可扩展的 Web 服务器,基于 Go 语言开发。

使用场景

  • 反向代理聚合:Nginx、Caddy、Traefik 三者都能让多个自托管应用共用一个公网 IP,性能都足够高,真正的瓶颈通常在应用本身。
  • 证书管理减负:Nginx 功能强大但设定繁琐,Certbot 又是一层维护负担;Caddy 内建自动 HTTPS、语法简洁,对中小型部署更实际。
  • 自动化运维:除配置文件外,Caddy 还提供管理配置的接口,可用于 Web 服务器管理自动化、集成发布等高级功能。
  • 快速起站:一两行命令就可以启动一个可用于生产环境的站点,适合个人自建服务器上手。
  • 配置格式迁移:已有其他格式配置时,用配置适配器转换,再比较 JSON 与 Caddyfile 两种写法的取舍。

安装与获取步骤

  1. 在 Debian、Ubuntu、Raspbian 上先补齐依赖:sudo apt install --yes debian-keyring debian-archive-keyring apt-transport-https curl。
  2. 导入 Caddy 稳定版仓库的 GPG 密钥:curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg。
  3. 写入软件源列表并放开读权限:curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list,随后对密钥文件与源列表文件执行 sudo chmod o+r,再运行 sudo apt update。
  4. 创建一份 Caddyfile:官方文档的 Common Caddyfile Patterns 页面给出了若干完整且最小化的配置,可直接作为起点改写。
  5. 启动服务:systemctl start caddy;配置修改后用 systemctl reload caddy 重载。
  6. 需要验证时按官方文档的「测试配置」流程检查 Caddyfile,再决定是否 reload;其他发行版的获取方式以官方页面 https://caddyserver.com/docs/install 为准。

与同类方案的区别

  • 与 Nginx 相比:Caddy 除了简单易懂的配置文件方式,还提供管理配置的接口;Nginx 则以配置项细密著称,证书常需配合 Certbot 单独维护。
  • 与 Traefik 相比:三者都适合反向代理场景,主要差异在于各自如何获取 TLS 证书,而不是转发性能。
  • 配置入口不同:Caddy 同时提供 Caddyfile、原生 JSON 与 JSON API 三条路径,配置适配器负责格式转换;文档中「比较 JSON 和 Caddyfile」一节专门讨论两者取舍。
  • 社区与文档:Caddy 有中文社区站点与中文文档站,可对照 https://caddyserver.org/zh-hant.html 与 https://caddyserver.com.cn/docs/getting-started 阅读。

注意事项

  • 配置文件写完不等于生效:每次配置修改后需执行 systemctl reload caddy 进行重载,直接改文件不会自动应用。
  • 不要只盯 Caddyfile:基于 API 的配置可被动态修改且能导出,即使不使用配置文件也能工作,排查问题时应确认当前生效的是哪一份配置。
  • 选择配置深度:Caddyfile 覆盖常见需求,原生 JSON 承载完整配置,两者能力边界不同,切换前先看文档的对比说明。
  • 版本号、文件大小、校验值、发布日期等信息以官方页面 https://caddyserver.com/docs/install 为准,不要照搬第三方教程中的数字。
  • 反向代理的性能上限取决于后端应用:三个主流方案转发能力都足够,优化应优先放在应用侧。

更新记录

最近更新:2026-10-03

软件参数速览

本站更新时间2026-10-03

下载

常见问题

Caddyfile 和原生 JSON 配置该选哪个?

大多数人最喜欢通过 Caddyfile 配置,适合描述站点与路由;需要 Caddyfile 未暴露的细节时改用原生 JSON。文档中有「比较 JSON 和 Caddyfile」一节,按控制粒度选择即可。

改完配置文件后服务没变化怎么办?

配置修改后执行 systemctl reload caddy 进行重载,重载会应用新配置;只保存文件不重载,进程仍按旧配置运行。

不用配置文件能驱动 Caddy 吗?

可以。基于 Caddy 的 API,配置能被动态修改且能导出来,不需要配置文件;不过大多数人仍通过 Caddyfile 来配置。

Caddy 和 Nginx 做反向代理怎么选?

两者转发性能都足够,瓶颈通常在应用本身,主要差异是获取 TLS 证书的方式。Caddy 内建自动 HTTPS,Nginx 常配合 Certbot,多一层维护负担。

Debian 源添加后 apt update 需要注意什么?

先对密钥文件 /usr/share/keyrings/caddy-stable-archive-keyring.gpg 和源列表 /etc/apt/sources.list.d/caddy-stable.list 执行 sudo chmod o+r,再运行 sudo apt update。

配置适配器解决什么问题?

当你手上的配置不是 Caddyfile 或 JSON 格式时,用配置适配器先转换成 Caddy 的配置,再交给进程加载,省去手工重写。

Caddy 默认就启用 HTTPS 吗?

是的,Caddy 默认启用 HTTPS,使用 Go 标准库提供 HTTP 功能。具体证书行为与边界以官方文档页面为准。

从哪里找可直接改的配置样例?

官方文档的 Common Caddyfile Patterns 页面给出若干完整且最小化的 Caddyfile 配置,可作为常见用例的起点;开始上手一节则覆盖运行守护进程、测试配置与创建 Caddyfile 的流程。

相关推荐

YesPlayMusic 音乐播放器 Windows 配置教程
为您详细拆解 YesPlayMusic 音乐播放器 Windows 配置教程,提供从官方渠道获取安装包、完成本地初始化到避开常见登录报错的保姆级实操步骤,帮助初学者快速上手这款第三方开源音乐客户端。
Caddy:自动 HTTPS 的 Web 服务器
Caddy 是一款自动 HTTPS 的开源 Web 服务器,它彻底解决了传统服务器配置 SSL 证书的繁琐流程。本文介绍 Caddy 的功能特点、安装步骤与使用技巧,帮助你用极简配置快速部署安全、高性能的站点。无论你是运维新手还是资深开发者,都能从中受益。
caddy中文使用文档
Caddy 中文使用文档围绕开源 Web 服务器 Caddy 的配置写法、部署方式与 HTTPS 证书管理展开,覆盖 Caddyfile、原生 JSON 配置、JSON API 动态管理、多平台获取途径与第三方插件构建,适合运维人员和开发者快速上手。
caddy开机自启配置
Caddy 是用 Go 编写的开源 Web 服务器,默认自动 HTTPS。直接用命令行运行时,进程会随终端关闭而退出,重启后站点无法恢复。本页整理基于 systemd 与 Docker Compose 的开机自启配置方法、验证命令与日志查看方式,适合自建站点与反向代理运维者。
caddy缓存插件使用
Caddy 默认不带反向代理缓存,caddy-cache 这类插件补上这块能力。本页整理它的核心功能、适用场景、通过 xcaddy 构建或使用 Docker 镜像的获取路径,以及配置生效与验证要点,供自建站点与反向代理运维者参考。
caddy负载均衡配置
Caddy 是 Go 编写的 Web 服务器,其 reverse_proxy 指令可把请求分摊到多个上游后端,配合负载均衡策略、重试等待时间与重试时间间隔控制故障转移,并提供管理接口便于自动化,适合自建服务与反向代理场景。