在宝塔面板上自建WebDAV服务的方法详解

宝塔面板自带的Nginx WebDAV功能存在一个限制,即不允许设置与站点域名相同的域名,这确实是一个比较奇怪的设计选择。因此,以下方法将不使用宝塔的图形界面功能来实现WebDAV服务。

步骤一:确认Nginx模块

首先,你需要确认你的Nginx服务器已经安装了nginx-dav-ext-module模块。你可以通过输入命令nginx -V来查看。根据测试,宝塔Nginx的1.24.0版本是自带这个模块的。

nginx version: nginx/1.24.0
built by gcc 12.2.0 (Debian 12.2.0-14)
built with OpenSSL 1.1.1q  5 Jul 2022
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module

如果没有这个模块,你可以手动安装。

步骤二:生成账号密码的授权文件

使用宝塔自带的密码访问功能来打开,并生成账号密码的授权文件。

步骤三:配置Nginx

将以下location配置粘贴到你的Nginx配置文件中,注意替换webdav.skywc.com为你自己的域名,并注释掉宝塔自带的鉴权代码。

location / {
    client_max_body_size 10240M;

    auth_basic "Restricted Content";
    auth_basic_user_file /www/server/pass/webdav.skywc.com.pass;

    dav_methods PUT DELETE MKCOL COPY MOVE;
    dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;

    create_full_put_path on;
    dav_access user:rw group:rw all:rw;

    autoindex on;
    charset utf-8;
}

步骤四:测试使用

使用相应的软件来测试你的WebDAV服务是否正常工作。

额外说明

这种方法不支持Obsidian的Remotely Save插件同步的无限目录功能。可能会遇到类似下面的HTTP状态码问题:

27.37.58.81 - webdav [18/Nov/2025:20:04:08 +0800] "OPTIONS /LLMNote/ HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.8.10 Chrome/132.0.6834.196 Electron/34.2.0 Safari/537.36"
27.37.58.81 - webdav [18/Nov/2025:20:04:08 +0800] "PROPFIND /LLMNote/ HTTP/1.1" 207 438 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.8.10 Chrome/132.0.6834.196 Electron/34.2.0 Safari/537.36"
27.37.58.81 - webdav [18/Nov/2025:20:04:09 +0800] "PROPFIND /LLMNote/ HTTP/1.1" 403 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.8.10 Chrome/132.0.6834.196 Electron/34.2.0 Safari/537.36"

由于性能问题,模块可能被禁用,除非你重新编写C代码并编译。不过,如果你确实有这个需求,也可以考虑使用PHP的WebDAV方案。

标签: none

评论已关闭