创建存储目录并设置权限
sudo mkdir -p /path/to/webdav/storage
sudo chown -R www-data:www-data /path/to/webdav/storage
sudo chmod -R 755 /path/to/webdav/storage配置基本认证
sudo htpasswd -c /etc/nginx/.htpasswd username确保 Nginx 安装了 WebDAV 模块
Nginx的WebDAV 功能由http_dav_module模块提供。默认情况下,这个模块是包含在标准Nginx编译中的,但某些情况下可能需要重新编译 Nginx 以包含此模块。
检查 Nginx 是否包含http_dav_module模块:
nginx -V 2>&1 | grep -o with-http_dav_module配置 Nginx 以支持 WebDAV
server {
listen 80;
server_name www.example.com;
location /webdav {
alias /path/to/webdav/storage/webdav/;
# 基础 WebDAV 方法(原生模块)
dav_methods PUT DELETE MKCOL COPY MOVE;
# 扩展 WebDAV 方法(nginx-dav-ext-module)
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
# 允许创建完整的上传路径(自动创建中间目录)
create_full_put_path on;
# 新建文件和目录的权限
dav_access user:rw group:rw all:r;
# 上传临时文件路径,需与最终存储在同一文件系统(推荐)
client_body_temp_path /tmp/nginx_webdav;
client_max_body_size 50G;
# 防止脚本执行(安全加固)
types { }
default_type application/octet-stream;
# 必须开启,WebDAV 客户端依赖 XML 格式解析目录结构
autoindex on;
autoindex_format xml;
# 认证(强烈建议启用)
auth_basic "WebDAV Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}测试 WebDAV 服务
使用cadaver工具来测试 WebDAV 服务:
sudo service nginx restart
sudo apt-get install cadaver
cadaver http://your_domain.com/webdav