caddy插件编译安装

它是什么Caddy 官方软件包只含标准模块,需要第三方插件时要用 xcaddy 从源码构建出专属二进制文件。

Caddy 官方软件包只含标准模块,需要第三方插件时要用 xcaddy 从源码构建出专属二进制文件。本页整理 xcaddy 的作用、适用场景、获取与构建步骤,以及与官方包、Docker 镜像、Nginx 方案的差别和常见坑点。

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

详细介绍

简介

Caddy 是用 Go 编写的快速、可扩展的多平台 Web 服务器,默认自动 HTTPS,支持 HTTP/1.1、HTTP/2、HTTP/3。麻烦在于官方维护的软件包只包含标准模块,一旦你要用第三方插件(比如反向代理缓存),就得自己把插件编译进 Caddy,得到一个包含插件的专属二进制文件。xcaddy 正是干这件事的命令行工具和关联 Go 包:它用你的插件编译 Caddy,再用给定的参数运行它,是每个模块开发者工作流程中的重要部分。适合需要定制模块的运维、插件开发者,以及想给自托管服务加能力的用户,核心优势是构建结果完全由你指定。

核心功能

  • xcaddy 是一个命令行工具和关联的 Go 包,用来制作 Caddy Web 服务器的自定义构建,被 Caddy 插件开发者大量使用。
  • 它用你指定的插件编译 Caddy,然后用给定的参数运行它,把「编译 + 带参运行」合并成一条工作流。
  • 构建产出一个专属的 Caddy 二进制文件,插件在编译期就被打进去了,运行时不需要再额外挂载模块。
  • 官方维护的软件包只包含标准模块;需要第三方插件时,可用 xcaddy 从源码构建、使用下载页面,或按插件作者给出的方式部署。
  • Caddy 本身快速、可扩展、跨平台,默认自动 HTTPS,支持 HTTP/1.1、HTTP/2、HTTP/3,零配置即可使用。
  • 插件范围不限于 HTTP 模块:Caddy 附带 HTTP 服务器,你也可以实现 SSH、SFTP、TCP 或内部使用的其他服务器类型并插入 Caddy。
  • 不编译也能拿到标准版本:从 GitHub Releases 下载可执行文件并放进 PATH,是最简单的跨平台起步方式。

使用场景

  • 反向代理缓存:Caddy 目前没有内置该能力,要么自己加第三方插件编译,要么直接用插件作者提供的 Docker Image。
  • 自托管服务前置:例如用 docker-compose 配合 Caddy 给 GoToSocial 做反向代理,最简场景直接使用默认的 Caddyfile。
  • 博客站点部署:Caddy + Hugo + Remark42 的组合,DNS 记录交给 Cloudflare 管理,证书由 Caddy 自动处理。
  • 用 Caddy 取代 Nginx 做反向代理:Nginx 强大但设定繁琐,Certbot 又是一层维护负担,Caddy 内建自动 HTTPS、语法更短。
  • 插件开发调试:写 HelloWorld 这类自定义模块时,用 xcaddy 把插件编译进 Caddy 并带参数运行,反复验证模块行为。
  • 非 HTTP 的内部能力:需要 SSH、SFTP、TCP 或内部使用的其他服务时,实现对应服务器类型并插入 Caddy。

安装与获取步骤

  1. 先判断需求:只要标准模块就走官方渠道;要第三方插件才需要自行构建,避免多做无用功。
  2. 标准版本最简单的跨平台方式:从 GitHub Releases 下载 Caddy 可执行文件,放到 PATH 中的某个目录。
  3. 也可以按系统包管理器获取,官方安装页 caddyserver.com/docs/install 列出了静态二进制,以及 Debian、Ubuntu、Raspbian 包和 Fedora、RedHat、CentOS 包。
  4. 需要第三方插件时,获取 xcaddy 命令行工具,仓库地址 github.com/caddyserver/xcaddy,它就是用来制作 Caddy 自定义构建的。
  5. 用 xcaddy 指定插件的模块路径执行构建,产出一个已经包含该插件的专属 Caddy 二进制文件。
  6. 构建完成后用 xcaddy 以给定参数运行,或直接执行刚生成的二进制文件,确认插件模块已经生效。
  7. 自己写插件时,可对照 caddyserver.com/docs/extending-caddy 与 flysnow.org 的 HelloWorld 篇目,先跑通最小模块再扩展。

与同类方案的区别

  • 官方包 vs 自建:官方包只含标准模块,自建二进制包含你指定的第三方插件,代价是后续更新要自己重新构建。
  • 自建 vs Docker Image:自建可控但要自己编译,插件作者提供的 Docker Image 省去编译环节,直接拉取即可。
  • 对比 Nginx + Certbot:Nginx 强大但设定繁琐,Certbot 是额外维护负担;Caddy 内建自动 HTTPS、语法简洁,对中小型部署更实际。
  • 对比 Traefik:自托管社区里有人在 docker-compose 环境选择 Caddy,理由是顺手好用;具体取舍仍以你的配置习惯为准。
  • 配置入口:最简场景用 Caddyfile,文件更改时可重新加载;也可以走 HTTP API 配置实现零停机,细节以官方文档为准。
  • 注意事项

    • 官方维护的软件包只包含标准模块,需要第三方插件时必须走 xcaddy 从源码构建或使用下载页面。
    • 自建的二进制文件由你自己维护更新,官方 Releases 的可执行文件替换更直接,两条路径的文件不要混放。
    • 插件模块的导入路径、依赖版本与构建参数以插件作者说明和官方页面为准,本页不列出任何具体版本号。
    • 运行后插件没生效时,先确认构建是否把模块路径传给了 xcaddy,再确认执行的是刚构建出的那个二进制文件,而不是 PATH 里的旧文件。
    • Caddy 默认使用名为 Caddyfile 的配置文件,可在更改时重新加载;通过 HTTP API 配置可实现零停机,具体接口以官方文档为准。
    • Caddy 的文档以例子为主,替换 Nginx 前先核对现有配置能力,指令写法以官方页面为准。

更新记录

最近更新:2026-10-03

软件参数速览

本站更新时间2026-10-03

下载

常见问题

官方下载的 Caddy 能直接用第三方插件吗?

不能。官方维护的软件包只包含标准模块,要用第三方插件需用 xcaddy 从源码构建、使用下载页面,或按插件作者提供的镜像部署。

xcaddy 到底解决什么问题?

它是命令行工具和关联的 Go 包,用你的插件编译 Caddy,然后用给定的参数运行它,从而生成包含插件的专属 Caddy 二进制文件,是模块开发者工作流的重要部分。

我只想要反向代理缓存,该怎么做?

Caddy 没有内置反向代理缓存,两条路:自己加第三方插件编译进 Caddy,或者直接用插件作者提供的 Docker Image,后者省去编译和后续升级。

插件只能是 HTTP 模块吗?

不是。Caddy 附带 HTTP 服务器,但你也可以实现其他服务器类型并插入 Caddy,例如 SSH、SFTP、TCP 或内部使用的其他东西。

不编译能拿到 Caddy 吗?

可以。最简单的跨平台方式是从 GitHub Releases 下载可执行文件放入 PATH;也可以用官方安装页列出的 Debian、Ubuntu、Raspbian、Fedora、RedHat、CentOS 软件包。

自建二进制和官方包差别在哪?

官方包只含标准模块,更新由官方维护;自建二进制包含你指定的插件,属于专属构建,后续升级需要重新构建,具体流程以官方页面为准。

用 Caddy 替换 Nginx 做反向代理要注意什么?

Nginx 设定繁琐、Certbot 又是维护负担,Caddy 内建自动 HTTPS、语法简洁;但 Caddy 文档以例子为主,替换前要逐条核对现有配置能力,指令以官方页面为准。

编译后插件没生效怎么排查?

先确认构建时是否把插件模块路径传给了 xcaddy,再确认运行的是刚构建出的二进制文件而不是 PATH 中的旧文件,最后核对插件作者说明的模块导入路径。

相关推荐

caddy缓存插件使用
Caddy 默认不带反向代理缓存,caddy-cache 这类插件补上这块能力。本页整理它的核心功能、适用场景、通过 xcaddy 构建或使用 Docker 镜像的获取路径,以及配置生效与验证要点,供自建站点与反向代理运维者参考。
aria2源码编译安装
提供 aria2 Windows 版本的下载入口、版本信息与安装步骤,含国内网盘直链,安装前请核对系统版本与架构。
caddy服务器配置教程
Caddy 是用 Go 编写的开源 Web 服务器,支持 HTTP/2,默认启用 HTTPS。本页整理其配置方式(Caddyfile、原生 JSON、JSON API)、Debian/Ubuntu 安装命令、启动与重载流程、与 Nginx 的差异及常见问题,适合需要快速搭建反向代理与自动证书管理的运维与开发者参考。
caddy中文使用文档
Caddy 中文使用文档围绕开源 Web 服务器 Caddy 的配置写法、部署方式与 HTTPS 证书管理展开,覆盖 Caddyfile、原生 JSON 配置、JSON API 动态管理、多平台获取途径与第三方插件构建,适合运维人员和开发者快速上手。
Ventoy持久化插件配置
本文为「知办库」为您整理的Ventoy持久化插件配置全方位教程。通过详细的步骤拆解与排错指引,帮助初学者快速掌握启动盘制作与持久化功能配置,解决系统安装过程中的常见痛点。
caddy开机自启配置
Caddy 是用 Go 编写的开源 Web 服务器,默认自动 HTTPS。直接用命令行运行时,进程会随终端关闭而退出,重启后站点无法恢复。本页整理基于 systemd 与 Docker Compose 的开机自启配置方法、验证命令与日志查看方式,适合自建站点与反向代理运维者。