当前位置: 首页 > news >正文

使用 Caddy 打造 Windows 极速 WebDAV 服务器

前言:现代 Web 服务器与经典协议的碰撞

在自建私有云存储的方案中,CaddyWebDAV 的组合一直被视为“极简主义”的代表。

Caddy 是一款使用 Go 语言编写的现代 HTTP 服务器。与传统的 Nginx 或 Apache 相比,它最大的特点是原生支持自动化模块化架构。它不仅处理效率极高,且配置文件(Caddyfile)语法极其接近自然语言,大大降低了维护成本。

WebDAV (Web Distributed Authoring and Versioning) 则是一门基于 HTTP 1.1 的经典扩展协议。它将 Web 空间转变为一个可读写的网络磁盘,允许用户像操作本地文件一样,对服务器上的文档进行编辑、移动和同步。虽然它是一门“古老”的协议,但由于其极高的跨平台通用性,至今仍是 Zotero、Obsidian、Notability 等生产力工具进行数据同步的首选。

将两者结合,本质上是利用 Caddy 强大的处理能力和简单的配置逻辑,为本地静态文件插上 WebDAV 的“翅膀”。本文将介绍如何通过 Caddy 快速构建一个既能满足专业软件同步,又兼顾浏览器直观预览的 WebDAV 服务环境。

1. 获取 Caddy

  1. 访问 Caddy 官网下载页
  2. 平台选择 Windows amd64
  3. 下方插件列表搜索并勾选 caddy-webdav,点击 Download
  4. 你会得到一个 caddy_windows_amd64_custom.exe,下载后重命名为caddy.exe

2. 安全第一:生成 Bcrypt 加密密码

Caddy 出于安全考虑,不允许在配置文件中写明文密码。我们需要使用 Caddy 内置的命令来生成一串哈希值。

  1. caddy.exe 所在文件夹打开命令行(PowerShell)。
  2. 输入以下命令(将 你的密码 换成你想设置的):
./caddy.exe hash-password --plaintext 你的密码
  1. 重要: 复制输出的那串以 $2a$ 开头的字符,稍后要填入配置文件。

3. 编写 Caddyfile 核心配置

caddy.exe 同级目录下新建一个文本文档,重命名为 Caddyfile(无后缀),填入以下“避坑版”代码:

{order webdav before file_server
}
:8081 {# 1. 身份认证 (注意:必须使用 caddy hash-password 生成的 bcrypt 字符串)basic_auth /webdav/* {admin "$2a$14$WwxNYJVaFHJZ3BHRmYmpF.CoeqRYffYV5bmDFRZuJTt34YyS6RdhC"}route /webdav* {# 统一剥离前缀uri strip_prefix /webdav# 3. 匹配浏览器请求@browser {method GETnot header Depth *}# 4. 浏览器显示网页列表handle @browser {file_server browse {root "D:/WebDAV"}}# 5. 其余(WebDAV 客户端)交给 webdav 模块handle {webdav {root "D:/WebDAV"}}}
}

4. 启动与验证

  1. 在命令行运行:./caddy.exe run
  2. 浏览器验证:访问 http://localhost:8081/webdav/。输入账号 admin 和你的明文密码。看到蓝色的文件列表说明成功。

图片

结语

相比传统服务器,Caddy 的配置极其优雅。虽然 WebDAV 是一门古老的协议,但在 Caddy 的加持下,它依然是本地磁盘云化最快、最稳的方式。


http://www.jsqmd.com/news/202423/

相关文章:

  • Windows性能监视器监控VibeVoice资源占用
  • 30分钟搭建智能应用控制演示系统
  • 小红书数据采集终极指南:智能工具如何让你轻松获取优质内容
  • 深入理解vector:模拟实现与现代C++技巧
  • 小红书内容采集的终极解决方案:为什么传统API方法正在被淘汰?
  • 开发效率革命:用AI工具5分钟完成Linux/Windows环境配置对比
  • 商米科技获IPO备案:年营收34.6亿 利润1.8亿 蚂蚁美团小米是股东
  • C++:二叉搜索树
  • 电商后台实战:用LAYUI构建订单管理系统
  • C# Dispose模式管理VibeVoice非托管资源
  • LVGL中字体嵌入方法:超详细版配置流程
  • 跨国团队实战:Android Studio中文化配置全流程
  • 零基础学配色:#0000FF蓝色的50种打开方式
  • 零基础学MySQL:从安装到第一个查询
  • 超越模板:PPTIST如何学习你的设计风格打造专属PPT
  • 1小时打造KRONOS预测原型:快马实战演示
  • 传统vs智能:驻点计算方法效率对比
  • 小红书内容采集实战指南:从技术门槛到效率提升
  • 3分钟搞定MSVCR120.DLL:效率提升10倍的技巧
  • 1小时用QT打造智能家居控制原型
  • 快速验证:新型共享访问解决方案原型设计
  • CSDN私信功能集成VibeVoice语音消息发送
  • 对比传统开发:AI生成代码效率提升10倍
  • 5个真实案例:免费DLL修复工具解决常见软件故障
  • STM32CubeMX vs 手动编码:开发效率对比分析
  • React Agent vs 传统开发:效率提升对比
  • 1小时快速验证:用SIMHEI.TTF设计APP中文界面原型
  • 5分钟快速验证:绕过区域限制的原型工具
  • 网盘直链下载助手生成VibeVoice资源永久链接
  • 应用程序无法正常启动0XC0000142实战应用案例分享