锵锵枪 wrote:
Nginx搭建WebDav服务器 ![](https://wx1.sinaimg.cn/large/006q8Q6bly1ffvkj28yc6j30gg09zt95.jpg) 注:坑比较多,喜欢折腾的化可以自己玩玩,想要省心还是用Apache吧。 #### 1、安装 >./configure --with-http\_dav\_module --add-module=/data/nginx-dav-ext-module-master --with-http\_ssl\_module 需要加入如下三个模块:Dav模块用于实现 PUT DELETE MKCOL COPY MOVE这些HTTP方法,但如果只是这样WebDav是完全没办法工作的,还需要dav_ext模块( https://github.com/arut/nginx-dav-ext-module ),提供PROPFIND、 OPTIONS这俩HTTP方法;ssl模块用于提供https支撑。 #### 2、Nginx配置 完整的配置模块如下: ``` location / { root /data/dav/; client_body_temp_path /data/client_temp/; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; autoindex on; create_full_put_path on; dav_access group:rw all:r; auth_basic "Authorized Users Only"; auth_basic_user_file /data/passwd; } ``` ##### 通过http basic进行认证 1. 获取密码字符串 >[root@localhost ~]# openssl passwd 123456 >XEIQ2qamW6lwk 2. 创建用户认证文件 >[root@localhost ~]echo "user:XEIQ2qamW6lwk" > passwd #### 3、坑 弄好后发现windows自带的客户端无法创建、重命名、删除文件夹等操作。对比日志发现操作文件夹的时候,nginx会判断uri,必须用“/”结尾才会成功。 没办法,只能通过if语句强制,添加“/”后正常。 >if ($request_method = MKCOL) { rewrite ^(.*[^/])$ $1/ break;} 其余方法类似,可以参考日志进行patch
锵锵枪 2020-06-29 16:32  0 回复