在Nginx上配置并开启WebDAV服务

创建存储目录并设置权限

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
reflectintheflow
“ 道之所存,虽千万人吾往矣;情之所钟,世俗礼易如粪土;兴之所在,与君痛饮三百杯 ”
 喜欢文章
头像