Nginx WebDAV模块配置详细说明及案例

  1. 安装Nginx WebDAV模块
    确保Nginx已安装并支持WebDAV模块。可以通过以下命令检查:

nginx -V 2>&1 | grep -- '--with-http_dav_module'

如果未安装,需重新编译Nginx并添加--with-http_dav_module选项。

  1. 配置Nginx WebDAV
    在Nginx配置文件中添加WebDAV配置块,示例如下:

server {
    listen 80;
    server_name webdav.example.com;

    location /webdav {
        alias /var/www/webdav;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        create_full_put_path on;
        client_max_body_size 0;
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
  • alias:指定WebDAV根目录。

  • dav_methods:允许的WebDAV方法。

  • dav_ext_methods:允许的扩展WebDAV方法。

  • create_full_put_path:自动创建缺失的目录路径。

  • client_max_body_size:设置上传文件大小限制,0表示无限制。

  • auth_basic:启用基本认证。

  • auth_basic_user_file:指定认证用户文件路径。

  1. 创建认证用户文件
    使用htpasswd工具创建认证用户文件:

htpasswd -c /etc/nginx/.htpasswd username
  1. 重启Nginx
    配置完成后,重启Nginx使配置生效:

sudo systemctl restart nginx
  1. 访问WebDAV
    使用WebDAV客户端(如Windows资源管理器或Cyberduck)访问http://webdav.example.com/webdav,输入用户名和密码即可访问。

案例:
假设WebDAV根目录为/var/www/webdav,允许用户上传、删除、创建目录等操作,并启用基本认证。配置如下:

server {
    listen 80;
    server_name webdav.example.com;

    location /webdav {
        alias /var/www/webdav;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        create_full_put_path on;
        client_max_body_size 0;
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

创建认证用户文件:

htpasswd -c /etc/nginx/.htpasswd user1

重启Nginx后,用户可通过WebDAV客户端访问并管理文件。

本篇文章内容来源于:NginxWebDAV模块配置详细说明以及案例