使用 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 GET
            not 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 的加持下,它依然是本地磁盘云化最快、最稳的方式。


posted @ 2026-01-06 03:08  雨中遐想  阅读(43)  评论(0)    收藏  举报