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,编 ...
随机推荐
- uniapp支付宝小程序生成分享图方案(最新)
最近公司业务开发支付宝小程序,功能涉及生成分享图的功能,开始研究实现方案. 开发过微信小程序的小伙伴应该都知道,在微信中生成分享图最常用的方案是使用第三方库Painter GitHub官方仓库地址为: ...
- python pandas csv 大文件 DataFrame转换为List
python 将大文件读取为 DataFrame 时,直接对整个文件进行读取会比较耗时,甚至内存还会不足. https://pandas.pydata.org/pandas-docs/stable/u ...
- mongodb删除某个字段
如下 db.yourcollection.update({ "需要删除的字段": { "$exists": true } }, { "$unset&q ...
- iframe高度自适应 完美解决
前言 一直被iframe的高度自适应的问题困扰着,今天终于找到完美解决方案,加上以下css即可. css iframe { display: block; border: none; height: ...
- 基于.NetCore开发 StarBlog 番外篇 (1) StarBlog Publisher,跨平台一键发布,DeepSeek加持的文章创作神器
前言 我一直在优化发布文章的工作流 之前的 StarBlog 已经支持文章打包上传(将 Markdown 和图片文件一并打包为 ZIP 格式上传),但还是有不少步骤,重复的次数多了,还是感觉麻烦. 为 ...
- 【视频编辑】Pr视频编辑软件导出的视频声音有一段会变大怎么解决
导出视频后为什么有段声音会突然变大? 也就是可能存在编辑器导出的时候有自动增益声音的行为. 具体描述: 工程文件里我没动过声音,工程文件里听也是很正常的,但是导出后有一小段音乐会突然变大(存在自动增益 ...
- Lazarus信创之路:启程,自动升级程序
相信国内做Delphi开发的不在少数,信创大趋势下,很多转Lazarus开发了.最近我也研究了一下,决定也转到这下面来,主要考虑:1.商业化方便,无版权纠纷:2.兼容Delphi语法,上手很快:3.原 ...
- python,下载图片到本地自定文件夹内的方法
比如,我们需要下载下面这张图,图片的网络地址:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000 ...
- 1779. 找到最近的有相同 X 或 Y 坐标的点
1779. 找到最近的有相同 X 或 Y 坐标的点 class Solution { public int nearestValidPoint(int x, int y, int[][] points ...
- fiddler的自动响应器
1.点击autoresponder,勾选enable rules和unmatched requests passthrough 2.替换步骤 (1)把要替换的会话拉取到空白处,或者选中要替换的内容点击 ...