记录一下用Caddy2搭建webdav服务
前置说明:
如果是通过 apt/yum 安装的 caddy 服务,若是使用 caddy list-modules | grep http.handlers.webdav 命令没输出对应的模块,需要从官网(https://caddyserver.com/download?package=github.com%2Fmholt%2Fcaddy-webdav)下载带编译模块的版本,替换/usr/bin/caddy文件,并将/usr/bin/caddy文件权限设置为755即可
如果是通过 apt/yum 安装的 caddy 服务,需要在 /lib/systemd/system/caddy.service 文件内的 [Service] 部分添加一个"ReadWriteDirectories=/opt/webdav"参数,用于给 /opt/webdav 目录读写权限
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
ReadWriteDirectories=/opt/webdav <-------------------------参考
[Install]
WantedBy=multi-user.target
webdav模块更多说明详见官网 https://github.com/mholt/caddy-webdav
哈希密码使用 caddy hash-password 来生成,不能配置明文密码,配置文件内admin部分就是验证登录的账号密码
Caddy 可以自动生成本地ssl证书, 将监听的 ':2233' 改成 'https://:2233' 即可,无需再做其他操作, 访问时需要使用 https 协议
log部分配置来源于https://ti.bi/posts/caddy_config.html
webdav部分配置来源于https://www.jianshu.com/p/9892e1d7ba6b
配置文件内容:
# 这部分是提供webdav服务
:2233 {
route {
basicauth {
admin $2a$14$uKDyQK9fFJlrL9VXpShX.eLv1nweTR3E.az23SfOy35jMZSUPGatq
}
webdav {
prefix /dav
root /opt/webdav
}
}
# 日志文件配置,不需要这部分的可以全删除
log {
output file /opt/webdav/caddy_webdav.log {
roll_size 100MiB
roll_keep 5
roll_keep_for 720h # 保留30天
}
format filter {
wrap console {
time_local
time_format wall
duration_format ms
}
request>headers delete
request>remote_ip delete
request>remote_port delete
#request>host delete
request>tls delete
resp_headers delete
bytes_read delete
user_id delete
}
}
}
# 这部分是提供http访问,用于在线查看目录文件
:2234 {
basicauth {
admin $2a$14$uKDyQK9fFJlrL9VXpShX.eLv1nweTR3E.az23SfOy35jMZSUPGatq
}
root /opt/webdav
file_server browse
# 日志文件配置,不需要这部分的可以全删除
log {
output file /opt/webdav/caddy_web.log {
roll_size 100MiB
roll_keep 5
roll_keep_for 720h # 保留30天
}
format filter {
wrap console {
time_local
time_format wall
duration_format ms
}
request>headers delete
request>remote_ip delete
request>remote_port delete
#request>host delete
request>tls delete
resp_headers delete
bytes_read delete
user_id delete
}
}
}
客户端访问:
webdav客户端访问:http://your-domain.com:2233/dav
浏览器在线查看:http://your-domain.com:2234/

本文来自博客园,作者:Ojox,转载请注明原文链接:https://www.cnblogs.com/Ojox/p/19222317

浙公网安备 33010602011771号