Debian安装脚本
apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
作为容器运行
caddy run
启动
caddy start
停止
caddy stop
重启
caddy reload
Caddy 文件编辑 路径/etc/caddy/Caddyfile
- xui tcp_ws_cdn反代
解析好的域名 { #ws伪装网址
reverse_proxy /YY localhost:12345 #YY为ws 路径
root * /var/html/www #伪装网站的路径
file_server #开启静态网站服务
encode gzip
}
- 内部应用localhost+端口反代
解析好的域名 { #反代网址
reverse_proxy localhost:8181
encode gzip
}
- 转发网址
解析好的域名 {
redir https://bing.com{uri}
encode gzip
}
- 跳过SSL证书申请,反代如nextcloud本身已经有SSL
解析好的域名 {
reverse_proxy https://192.168.1.3:8006 {
transport http {
tls_insecure_skip_verify
}
}
- 网页增加登陆密码
解析好的域名 {
reverse_proxy localhost:3021
basic_auth {
# Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
encode gzip
}
caddy hash-password -p <密码> # Caddy自带生成hashed密码命令

https://caddyserver.com/docs/command-line#caddy-hash-password
hashed_password 其他 生成网址https://bcrypt.online/
canddy文档
https://caddyserver.com/docs/caddyfile/directives/basic_auth#basicauth
- File server
解析好的域名 {
root * /srv
basic_auth {
# Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
encode gzip zstd
file_server {
browse /etc/caddy/browse.html #重新配置删除页脚的页面文件路径
precompressed zstd br gzip
}
}
simple file server for download use ip directly
<your-ip>:80 {
root * /srv
file_server
}
https://caddyserver.com/docs/caddyfile/directives/file_server
caddy validate --config /etc/caddy/Caddyfile #确认Caddyfile设置是不是正确,无errors为正确
如果有以下黄色警告

用以下命令修复:
caddy fmt --overwrite --config /etc/caddy/Caddyfile
带caddy logo页脚原始file server html页面文件 https://github.com/caddyserver/caddy/blob/master/modules/caddyhttp/fileserver/browse.html

修改页面html文件后文件所有权权限修改
chown caddy:caddy /etc/caddy/browse.html
chmod 644 /etc/caddy/browse.html
修改后确认caddy是不是可以读取
sudo -u caddy cat /etc/caddy/browse.html #正确显示html内容并无错误为权限设置正确
非root用户设置
Caddy文件服务器的目录需要为caddy
ls -ld /srv
显示如下的话:
drwxr-xr-x root root 4096 Jan 28 10:00 /srv
文件夹要设置为caddy拥有权
sudo chown -R caddy:caddy /srv
之后允许文件夹访问和执行
sudo chmod -R 755 /srv
SSL证书出问题如网址乱跳转https不能访问等的解决方法
删除证书并且备份证书
mv /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory.bak
重启并重新申请证书
systemctl restart caddy
caddy file 配置 file server+webdav,(需要增加webdav 模块),配置后用以下地址访问
file server 地址
webdav 地址
{
order webdav before file_server
}
caddy.mywebdav.com {
root * /data
encode gzip
basicauth {
user JDJhJDE0JFhpQlFyTmJ5bGxwNDRsOExZQmZvVk9yWVFDTi9GclFoRjZ0bnZ3aTNZZXpiYzNkdThub25p
}
route {
rewrite /webdav /webdav/
webdav /webdav/* {
prefix /webdav
}
file_server browse
}
log {
output file /var/log/caddy/webdav.log
}
}
增加功能模块
模块网址
https://caddyserver.com/download
选择 cpu类型 
选择模块 
选中模块后,命令 caddy add-package+模块网址 增加模块
caddy add-package github.com/mholt/caddy-webdav
安装完之后查询
caddy list-modules
显示Non-standard modules就安装成功
http.handlers.webdav
Non-standard modules: 1

Caddy 文件编辑后需要重启才会应用设置
systemctl reload caddy #重新加载配置,服务不会中断
systemctl restart caddy #停止再重启,服务会中断
评论区