编译 Caddy 并使用
2023年5月21日大约 1 分钟
前面有说过 nginx-quic 编译和使用,这篇文章就来简单记录一下 Caddy 的编译和使用。
基本环境
一台 Linux 服务器,这里使用 Ubuntu23.04 系统。
安装 git
sudo apt update
sudo apt install git
安装 xcaddy
详见 https://github.com/caddyserver/xcaddy
安装 go
这里有一点特别,因为我不做 go 相关的开发,所以没必要全局安装 go。
在 $HOME
下创建目录,xcaddy
cd $HOME
mkdir xcaddy
下载 go
cd xcaddy
wget https://go.dev/dl/go1.20.4.linux-amd64.tar.gz # 替换为最新版本
解压
tar -zxvf go*.linux-amd64.tar.gz && rm go*.linux-amd64.tar.gz
编译构建
在 xcaddy 目录下创建脚本 build.sh
touch build.sh
内容为
#!/bin/bash
# 设置环境变量
export PATH=$HOME/xcaddy/go/bin/:$PATH
export GOPATH=$HOME/xcaddy/gopath
# 编译caddy
xcaddy build v2.7.0-beta.1 --output ./ \
--with github.com/caddy-dns/alidns \
--with github.com/caddy-dns/dnspod \
--with github.com/abiosoft/caddy-exec \
--with github.com/WingLim/caddy-webhook \
--with github.com/ueffel/caddy-brotli
执行脚本
sh ./build.sh
其他文件
创建 caddy.service
备用
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=ubuntu ;改为你自己的 User
Group=ubuntu ;改为你自己的 Group
ExecStart=/usr/bin/caddy run --environ --config /home/ubuntu/www/caddy/Caddyfile ;改为你自己的路径
ExecReload=/usr/bin/caddy reload --config /home/ubuntu/www/caddy/Caddyfile --force ;改为你自己的路径
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateDevices=yes
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target