用xcaddy编译安装caddy2方法

Caddy2的编译

1. Golang 环境安装

我的云服务器是Ubuntu系统,所以编译环境默认为Ubuntu系统,使用 root 用户,其他系统的同学,请自行调整相关目录以及配置。

a. 首先下载go语言的SDK压缩包
cd ~
wget https://golang.org/dl/go1.20.2.linux-amd64.tar.gz
b.解压go语言的 SDK 压缩包
# 解压
tar -zxvf go1.20.2.linux-amd64.tar.gz
c.目录设置
# 移动到自定义目录
mkdir -p /opt/devtools
mv go /opt/devtools/go

# 创建 go 相关目录
mkdir -p ${HOME}/gopath/{src,bin,pkg}
 d.环境变量设置
# 打开profile文件
vim /etc/profile
 # 添加以下内容
export GOROOT='/opt/devtools/go'
export GOPATH="${HOME}/gopath"
# 如果是国内机器,需要导入添加代理
# export GOPROXY='https://goproxy.cn' 
export PATH="${GOROOT}/bin:${GOPATH}/bin:${PATH}"
# 让配置生效
source /etc/profile
e.测试安装效果
#键入命令
go version

# 屏幕输出
go version go1.20.2 linux/amd64

2. xcaddy安装

如果已经是root用户,则需要 把下面命令中的 sudo 去掉。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list
sudo apt update
sudo apt install xcaddy

安装完成后,通过查看版本验证是否安装成功。

# 查看 xcaddy 版本
xcaddy version

# 屏幕输出
v0.3.2 h1:Y1QPKq97GrSG6ryMhGTw1g9GHH8wRmwnCzOcN+f+gCY=

 3. Caddy2编译

ubuntu系统需要安装 jq、curl、git ,如果没有请使用 apt install -y curl git jq 命令安装;自行编译的目的是增加第三方插件方便使用,官方列出的插件可以从 Download 页面获取到。其他插件可以从 GitHub 上查找,整理好这些插件列表以后只需要使用 xcaddy 编译即可,命令如下:

# 获取最新版本号,其实直接去 GitHub realse 页复制以下就行
# 这里转化为脚本是为了方便自动化

#获取caddy2的最新版本号,并导入变量version
export version=$(curl -s "https://api.github.com/repos/caddyserver/caddy/releases/latest" | jq -r .tag_name)

# 使用 xcaddy 编译
xcaddy build ${version} --output ./caddy_${version} \
--with github.com/caddy-dns/alidns

我这里只添加了alidns这个插件,需要其他插件的自行在命令行后面加上就是。
编译完成后,在root目录下会出现一个 caddy_v2.6.4 的文件,然后把这个文件拷贝并覆盖到/usr/bin/caddy这个路径下,替换之前记得先停止caddy服务

# 替换二进制文件:将编译的 /root/caddy_v2.6.4 文件移至 /usr/bin/caddy
systemctl stop caddy
rm -f /usr/bin/caddy
mv ./caddy_v2.6.4 /usr/bin/caddy
# 查看caddy是否安装成功
caddy version

 

THE END