Caddy自编译
转载自我的个人博客:Caddy自编译
配置 Golang 环境
需要先配置 Golang 环境:Download and install - The Go Programming Language
wget https://go.dev/dl/go1.24.4.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
最后检查一下是否安装成功:
go version
安装 xcaddy
如果你是在国内环境下编译的话,需要配置镜像,在这里我使用阿里云的:
export GOPROXY=https://mirrors.aliyun.com/goproxy/
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
安装完成之后需要查找 xcaddy 的安装位置,一般来说 go 会将其安装到 $HOME/go/bin 目录下,你可以检查:

使用临时路径运行 xcaddy:
$HOME/go/bin/xcaddy build --with github.com/caddy-dns/alidns
这里的 --with 后面就需要你找可以编译的 Caddy 插件,我这里编译一个支持阿里云 DNS-01 的 DNS 解析的插件
编译完成之后会自己检查对应的版本

替换原版 Caddy
先停掉原本原版的 Caddy:
systemctl stop caddy
随后,建议让 Caddy 服务不自动重启/不再开机启动(避免替换过程中被意外重启):
sudo systemctl disable caddy
寻找原本 Caddy 的二进制位置:
which caddy
一般来说会在 /usr/bin/caddy 位置下
假设查到官方二进制在 /usr/bin/caddy,那就进行备份:
mv /usr/bin/caddy /usr/bin/caddy.backup-official
之后将新编译的二进制文件移动到原来的位置
sudo cp ./caddy /usr/bin/caddy
最好重新设置一下权限,避免出现问题:
sudo chown root:root /usr/bin/caddy
sudo chmod 755 /usr/bin/caddy
最后检查一下是否更新成功:
caddy version
还可以检查一下插件列表,看看是不是有你编译的插件:
caddy list-modules

是否需要修改 systemd Service 文件
一般来说,如果你是直接替换官方的二进制文件,那其实没有必要修改文件,直接用原来的就可以了,但是你要是自己整了活,那就只能自己重新写了
但是我比较菜,这里就不写参考的配置文件了
Caddy自编译的更多相关文章
- 一个比 Nginx 功能更强大的 Web 服务器
公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Caddy 简介 Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随 ...
- 使用caddy 进行nodejs web应用近实时编译更新
caddy 相比nginx 是一个不错的轻量代理服务器,支持的功能也是比较多的, 同时插件也挺多 demo 测试的是通过git 插件进行一个使用spec-md 编写的文档近实时编译以及预览 项目使用d ...
- Caddy – 方便够用的 HTTPS server 新手教程
最近发现了一个 golang 开发的 HTTP server,叫做 Caddy,它配置起来十分简便,甚至可以 28 秒配置好一个支持 http2 的 server ,而且对各种 http 新特性都支持 ...
- coredns 编译模式添加插件
备注: coredns 默认已经安装了一些插件,比如大家用的多的kubernetes etcd ... 但是我们可以自己编译插件,构建我们自己的 coredns 版本,方便集成使用 1. 项目结 ...
- 使用caddy实现非标准端口https
近来使用Halo搭建博客,并顺便把WeHalo小程序也把玩了起来,但是发现几个非常棘手的问题: 根据访问日志发现有三方在刷取关键接口的请求,http请求在部分情况下会暴露出很显著的安全问题: 小程序强 ...
- 运维实践-最新Nginx二进制构建编译lua-nginx-module动态链接Lua脚本访问Redis数据库读取静态资源隐式展现
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x0n 前言 ...
- TODO:macOS编译PHP7.1
TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...
- Centos6.5下编译安装mysql 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CENTOS 6.5 平台离线编译安装 PHP5.6.6
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...
- CENTOS 6.5 平台离线编译安装 Mysql5.6.22
一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...
随机推荐
- 如何解决ubuntu安装第三方deb出现的read unknown VMA问题(SUID sandbox配置问题)
前言 众所不周知,ubuntu的snap有些让人无语凝噎的问题,比方说如果你在Ubuntu 24.04 LTS通过它安装vscode,恭喜你,你无法在vscode中输入中文,缘由不明,又或者对于str ...
- 【Linux】3.9 网络配置
网络配置 1 Linux网络配置原理 虚拟机NAT网络配置原理 2 查看网络IP和网关 2.1 虚拟机网络编辑器 2.2 修改IP地址 2.3 查看网关 2.4 查看windows中的虚拟网卡的ip地 ...
- 【网络攻防】ARP欺骗实验
实验概述 ARP欺骗是一类地址欺骗类病毒,属于木马病毒,自身不具备主动传播的特性,不会自我复制.但是由于其发作的时候会不断向全网发送伪造的ARP数据包,导致网络无法正常运行,严重的甚至可能带来整个网络 ...
- SQL Server 查看版本信息
SQL Server 查看版本信息3种方法: 1) 使用命令行查看 [Win + R]键 -> 打开cmd 2) 使用SSMS查看 打开并连接SSMS后查看 3) 通过服务器属性查看 使用SSM ...
- java学习-4-核心类:字符串
实际上字符串String内部是通过一个char[]数组表示的.因此 String s = new String(new char[] {'h','e','l','l','o'}; 和 String s ...
- Greenplum常用命令、函数
Greenplum常用查询命令 #查看test_bd事务(即数据库)下的所有表名包含 user 的 表信息 SELECT UPPER(A.SCHEMANAME) AS SCHEMANAME, UPPE ...
- windows10 安装 git
windows10 安装 git 1.前往官网:https://git-scm.com/downloads 网站会自动识别系统,若识别有误,则自己选择更改即可 2.双击运行 3.选择自己的安装目录 4 ...
- ElasticSearch学习文档
中文文档:https://doc.codingdict.com/elasticsearch/ Elastic 官方网站:Free and Open Search: The Creators of El ...
- Java日期格式化中的“YYYY”陷阱:为什么跨年周会让你的年份突然+1?.md
结论先行 在Java中使用 YYYY-MM-dd 格式化日期时,若日期所在的周跨年,年份可能会被错误计算为下一年(如2021年12月26日显示为2022年).而使用 yyyy-MM-dd 会始终返回正 ...
- Multisim14.0安装包免费获取,超详细中文安装步骤助你快速上手!
Multisim14.0简介 Multisim14.0是由美国国家仪器公司(NI)推出的专业电子设计自动化](EDA)工具,广泛应用于电路设计.仿真验证.教学实验及科研开发领域.其核心功能是通过虚拟仿 ...