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,编 ...
随机推荐
- 【SfM】Colmap和openMVG尝试记录
数据集来源:http://www.maths.lth.se/matematiklth/personal/calle/dataset/dataset.html Colmap与openMVG关于SfM稀疏 ...
- Web前端入门第 11 问:HTML 常用标签有多少?全量标签有多少?
HELLO,这里是大熊学习前端开发的入门笔记. 本系列笔记基于 windows 系统. 截止发文,MDN 收录的 HTML 全量标签有 126 个,有 18 个标记已弃用. 名词解释:MDN --- ...
- Vite项目入口文件
官方文档:https://cn.vitejs.dev/guide/#index-html-and-project-root
- VirtualBox磁盘扩容
前言 虚拟机开始时设置的磁盘空间比较小,后面使用就不够了. # 查询磁盘使用情况 df -h 虚拟硬盘扩容 关闭正在运行的虚拟机 选中工具栏 选择虚拟硬盘,并选中需要扩容的磁盘 拖动进度条,设置想要扩 ...
- mongodb 查看、创建、修改、删除索引
简介 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询 ...
- 对于 emlog pro 目前 avatar 头像不显示的问题,暂时使用这个方法解决
avatar 头像 cdn 不稳定,目前 emlog 官方还没有放出更新包.因此,现在使用 JS 的方式暂时解决. 代码如下 <script> const avaUrl = 'https: ...
- 面试题-Java多线程基础、实现工具和可见性保证(新更新版)
前言 Java多线程部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮 ...
- 我对TamperMonkey的不满-更新中
我认为我的电脑上的TamperMonkey插件的值得考虑的不足: 没有提供一个把脚本最小化的功能 不能编辑热键 脚本icon不能使用svg 没有提供一种很好的能够区分别人的脚本和自己的脚本的方式,自己 ...
- mybatis的输入参数类型
一.传递简单数据类型 二.传入一个bean对象 三.传入一个包装对象(对象中存放对象)
- 解释Spring框架中bean的生命周期
一.Bean生命周期的流程图 二.spring的生命周期 spring生命周期中的阶段,包括初始化.使用.销毁. 1.初始化阶段 1)调用bean的构造函数,创建实例: 2)进行参数依赖注入: 3)若 ...