惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
V
Visual Studio Blog
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
B
Blog
I
InfoQ
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
H
Help Net Security
博客园 - Franky
宝玉的分享
宝玉的分享
博客园 - 司徒正美
C
Check Point Blog
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家

烧饼博客

烧饼论坛正式开业 - 烧饼博客 博客大联盟:一个给独立博客的收录与聚合站 - 烧饼博客 回归初心,文字为王 - 烧饼博客 Ubuntu 24.04 Noble 升级 Ubuntu 26.04 Resolute WSL 2 使用 Docker 桥接模式网络访问 HTTPS 超时的解决方法 Debian / Ubuntu 下使用 nginx-acme 自动签发并配置 SSL 证书 使用 acme.sh 配置 Let's Encrypt 签发的 IP 地址 SSL 证书 RDAP.SS - 基于 RDAP 协议的 Whois 查询网站 Debian 使用 extrepo 配置第三方软件源 升级 Debian 后 GitLab PostgreSQL 无法启动的解决方法 Debian 12 Bookworm 升级 Debian 13 Trixie Ubuntu 22.04 Jammy 升级 Ubuntu 24.04 Noble Docker 安装 FreshRSS 教程 Debian / Ubuntu 开启 SSH 的 RSA Key 登录 - 烧饼博客 Debian 11 Bullseye 升级 Debian 12 Bookworm - 烧饼博客 Debian / Ubuntu 下使用 HTTP/3 协议的 Nginx QUIC - 烧饼博客 Debian / Ubuntu 安装 Caddy - 烧饼博客 Debian / Ubuntu 手工添加 Swap 分区 - 烧饼博客 Nginx 使用 split_clients 进行简易 A/B 测试 - 烧饼博客 KDE Plasma 关闭单击打开文件或文件夹 - 烧饼博客 Firefox 指定特定网站关闭所有扩展 - 烧饼博客 Docker 安装 Shlink 自建短网址 Debian 安装 Nextcloud 服务端 Debian / Ubuntu 安装 PowerDNS 和 PowerDNS-Admin 自建权威 DNS 教程 - 烧饼博客 Debian 双栈网络时开启 IPv4 优先 Debian / Ubuntu 安装 Docker 以及 Docker Compose 教程 - 烧饼博客 SM.MS - 收费图床服务 - 烧饼博客 Debian / Ubuntu 使用源安装 LAMP 教程 Debian / Ubuntu 使用源安装 LEMP 教程
Debian / Ubuntu 使用 xcaddy 自定义编译 Caddy - 烧饼博客
Showfom · 2023-01-23 · via 烧饼博客

本文将指导使用 xcaddy 自定义编译 Caddy。

以下操作需要 root 权限,本文命令均已带上 sudo 前缀,请确保当前用户拥有 sudo 权限;或者直接使用 root 用户操作并省略命令中的 sudo

上一篇文章介绍了如何安装使用 Caddy,但是 Caddy 的功能有时候并不能满足业务需求,如果想要使用更多的功能,就需要自定义编译 Caddy。

xcaddy 是 Caddy 官方制作的用于自定义编译 Caddy 的工具,它可以帮助我们快速的编译出符合自己需求的 Caddy。

#安装 xcaddy

我们按照官方的安装方法,首先,安装一些必要的软件包:

然后按照官方教程安装 Go:

然后把 go 加入系统环境变量:

然后加入 Caddy 的 GPG 公钥和 apt 源:

Debian 下也可以使用 extrepo:

然后更新系统后即可安装 xcaddy:

重启打开 SSH 后检查一下 go 和 xcaddy 的版本:

#自定义编译 Caddy

我们可以选择一些自己喜欢的模块,比如缓存模块Brotli 压缩模块

经过一段时间的编译以后,我们就可以在当前目录下看到一个名为 caddy 的二进制文件,这就是我们自定义编译的 Caddy 了。

#自定义 Caddy 和系统 Caddy 共存

如果我们想要自定义 Caddy 和系统 Caddy 共存,可以使用官方的教程

首先,按照我们的教程安装 Caddy,安装完毕后,先停止 Caddy 服务:

然后使用 dpkg-divert 命令将系统 Caddy 的二进制文件移动到 /usr/bin/caddy.default 并做软链接:

然后把我们自己编译好的 Caddy 二进制文件移动到 /usr/bin/caddy.custom

然后设置优先级,让我们的自定义 Caddy 优先启动:

此时我们可以看到默认的 /usr/bin/caddy 已经是我们自定义的 Caddy 了:

我们也可以使用 sudo update-alternatives --config caddy 命令来切换系统安装的 Caddy 和自定义的 Caddy:

我们可以看到默认的 Caddy 二进制文件是我们自定义的,你可以输入 0 (按照优先级自动) 1 (手工切换自定义 Caddy) 或 2 (使用系统默认 Caddy) 来修改并切换默认的 Caddy 版本。