基本概述

Caddy是一款用Go语言编写的开源Web服务器,以其自动HTTPS、简洁配置和高性能著称。它不仅是HTTP/1.1、HTTP/2和HTTP/3服务器,还支持反向代理、负载均衡、静态文件托管等功能,适用于从个人博客到企业级应用的多种场景

Caddy 安装与卸载

点击查看教程

apt 安装 caddy

1 、安装caddy

1
sudo apt install caddy -y

2 、查看caddy 版本

1
caddy version

caddy 卸载

1 、停止 Caddy 服务

1
sudo systemctl stop caddy

2 、移除 Caddy 软件包

1
sudo apt remove caddy -y

3 、清除配置文件和残留数据(可选,但推荐彻底卸载时执行)

1
sudo apt purge caddy

4 、自动移除无用的依赖包

1
sudo apt autoremove

5 、检查软件包是否存在

1
dpkg -l | grep caddy

如果没有任何输出,说明系统中通过常规软件包安装方式安装的 Caddy 已被移除干净了。

caddy 维护命令

1 、 查看配置文件

1
cat /etc/caddy/Caddyfile

2 、 停止caddy

1
systemctl stop caddy

3、 启动caddy

1
systemctl start caddy

4 、重载caddy配置文件

1
sudo systemctl reload caddy

5 、 查看caddy运行状态

1
systemctl status caddy

6 、开启caddy开机自启

1
sudo systemctl enable caddy

caddy 反向代理

点击查看教程

下面将以【example.com】域名反向代理xunlei服务为例

xunlei 地址:https://xunlei.example.com:666

caddy 创建主配置文件

1
2
3
4
5
6
7
8
9
10
11
12
touch /usr/local/caddy/Caddyfile && chmod u+x /usr/local/caddy/Caddyfile && cat > /usr/local/caddy/Caddyfile <<'EOF'
{
# 指定http端口为86
http_port 86
order webdav before file_server
}

## 引用其它目录的配置文件
import /usr/local/caddy/conf.d/*.conf
EOF

cd /usr/local/caddy && ./caddy fmt --overwrite && ./caddy reload

创建 xunlei 反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mkdir -pm 755 /usr/local/caddy/conf.d && touch /usr/local/caddy/conf.d/xunlei.conf && chmod u+x /usr/local/caddy/conf.d/xunlei.conf && cat > /usr/local/caddy/conf.d/xunlei.conf <<'EOF'
## xunlei 下载
https://xunlei.example.com:666 {
encode gzip
tls ssl/full_chain.pem ssl/private.key
reverse_proxy http://10.10.10.88:2345 {
header_up Host {http.reverse_proxy.upstream.hostport}
}
## 错误处理
handle_errors {
## 将所有错误重定向到50x.html页面
rewrite * /50x.html
# 指定错误页面的根目录
root * /var/www/html
# 启用文件服务器,用于提供错误页面
file_server
}
}
EOF

cd /usr/local/caddy && ./caddy fmt --overwrite && ./caddy reload

caddy 负载均衡

点击查看教程

下面将以【example.com】域名为例

mtab 标签页:https://mtab.example.com:666

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## caddy 负载均衡 负载轮询
mkdir -pm 755 /usr/local/caddy/conf.d && touch /usr/local/caddy/conf.d/mtab.conf && chmod u+x /usr/local/caddy/conf.d/mtab.conf && cat > /usr/local/caddy/conf.d/mtab.conf <<'EOF'
https://mtab.example.com:666 {
encode gzip
tls /usr/local/caddy/ssl/full_chain.pem /usr/local/caddy/ssl/private.key

reverse_proxy /* http://10.10.10.88:9200 http://10.10.10.88:9200 {
header_up Host {http.reverse_proxy.upstream.hostport}
lb_policy round_robin ## 依次轮询每条上游
}
}
EOF

cd /usr/local/caddy && ./caddy fmt --overwrite && ./caddy reload

caddy 搭建 webdav 服务器

点击查看教程

下面将以【example.com】域名为例

Ubuntu 安装二进制 Caddy

1 、创建Caddy存放目录(包括证书存放目录)

1
mkdir -p /usr/local/caddy/ssl && cd /usr/local/caddy

2 、下载Caddy

到【Caddy官网】下载对应平台的二进制文件(我使用的,平台选择Linux amd64),选中带有WebDAV插件的可执行程序,点击下载

3 、将下载好的Caddy程序上传到/usr/local/caddy目录中

4 、修改程序名称为caddy

1
cd /usr/local/caddy && mv caddy_linux_* caddy

5 、赋予执行权限

1
chmod u+x /usr/local/caddy/caddy

6 、升级Caddy版本

1
cd /usr/local/caddy && ./caddy upgrade

7 、查看当前二进制文件中包含的非标准模块的包名列表。

1
cd /usr/local/caddy && ./caddy list-modules --packages

8 、二进制caddy升级命令

1
cd /usr/local/caddy && ./caddy add-package github.com/caddyserver/caddy/v2

9 、查看 Caddy 版本

1
cd /usr/local/caddy && ./caddy version

10 、查看caddy默认端口

1
curl localhost:2019

创建 webdav 文件服务配置文件

webdav 文件服务:https://file.example.com:666

1 、windows挂载:此电脑–右键网络–映射网络驱动器–添加下面的链接

1
https://file.example.com:666/webdav

2 、终端生成12345的密码命令:/usr/local/caddy/caddy hash-password --plaintext 12345

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
mkdir -pm 755 /usr/local/caddy/conf.d && touch /usr/local/caddy/conf.d/webdav.conf && chmod u+x /usr/local/caddy/conf.d/webdav.conf && cat > /usr/local/caddy/conf.d/webdav.conf <<'EOF'
## caddy 反向代理 WebDAV 服务
https://file.example.com:666 {
## 设置 /mnt 为可被访问目录(可自行修改)
root * /mnt
encode gzip

## 终端生成12345的密码命令:/usr/local/caddy/caddy hash-password --plaintext 12345
## 用户名:admin(可自定义)
basic_auth {
admin $2a$14$yI/KQg2h5rQkXao4lzRMC.Rx5t3bRuGyCYkvEeiJyc9hUrYt0USsi
}

## 指定证书路径,绝对路径为/usr/local/caddy/ssl/private.key等于ssl/private.key
tls /usr/local/caddy/ssl/full_chain.pem /usr/local/caddy/ssl/private.key

route {
rewrite /webdav /webdav/
webdav /webdav/* {
## 访问WebDAV服务的前缀
prefix /webdav
}
## 启用当前目录的文件服务器,并允许浏览文件列表
file_server browse
}
}
EOF

cd /usr/local/caddy && ./caddy fmt --overwrite && ./caddy reload

windows 开机自动挂载 samba 和 webdav

1 、linux 查看samba配置文件命令

1
cat /etc/samba/smb.conf

2 、在windows创建.bat脚本,放在开机自启动目录

[PVE-mydisk] 为linux配置文件中的网络共享名称

1
net use W: https://file.example.com:666/webdav /user:admin yifan0719

3 、CMD命令打开开机自动执行脚本文件夹

1
start shell:startup