nginx实战 WebDAV 模块 http_dav_module

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx实战 WebDAV 模块 http_dav_module相关的知识,希望对你有一定的参考价值。

前言

WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。nginx 编译时通过加入“–with-http_dav_module”可以启用对WebDav协议的支持。

WebDAV 工作组的目标是,设计一个协议,它提供基于万维网的分布式创作和版本控制。 当前的 WebDAV 规范 (IETF RFC 2518) 解决协作式创作工具的三个主要问题:

**改写保护** HTTP 1.1 无法确保客户端可以保护资源,并且可以在其他客户端同时编辑它们的情况下进行更改。 使用 WebDAV,可以通过多种方式来锁定资源,以便让其他客户端知道您对所讨论的资源感兴趣,或者防止其他客户端访问该资源。
**资源管理** HTTP 只能直接访问单个资源。 WebDAV 提供一种更有效地组织数据的方法。 WebDAV 引入了可包含资源的集合(类似于文件系统文件夹)概念。 通过 WebDAV 进行的资源管理包括如下功能:创建、移动、复制和删除集合,以及集合中的资源或文件。
**文档属性** 不同类型的数据具有唯一的属性,这有助于描述数据。 例如,在电子邮件中,这些属性可能是发件人的姓名和接收邮件的时间。 在协作文档中,这些属性可能是文档原始作者的姓名和最后一个编辑者的姓名。 因为人们使用的文档类型各不相同,所以可能的属性类型列表也变得无限大。 XML 是 WebDAV 所需的一种可扩展通讯工具。
    (摘自百度百科 https://baike.baidu.com/item/WebDAV)

编译

nginx 环境搭建见前文 http://blog.51cto.com/13673090/2300319, 此处只写webdav 模块

yum -y install expat-devel httpd-tools

git clone https://github.com/arut/nginx-dav-ext-module.git

cd openresty
./configure --with-http_dav_module --add-module=../nginx-dav-ext-module  

配置

cd conf/conf.d
cat > webdav.conf <<EOF
server {
    listen       8080;
    #server_name  dav.savorof.org;
    access_log  logs/webdav.access.log  main;
    location / {
        root    /var/www/soft/program;
        autoindex on;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        create_full_put_path  on;
        dav_access user:rw group:r all:r;
        auth_basic "Authorized Users Only";
        auth_basic_user_file /var/www/soft/.htpasswd;
    }
}

EOF

htpasswd -c /opt/soft/.htpasswd dav

win10映射网络驱动

因WebDAV未使用HTTPS协议,Win10是无法通过映射网络驱动器的方法进行挂载的。解决方法如下:
1、修改注册表:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWebClientParameters,把BasicAuthLevel 值改成2,即同时支持http和https,默认只支持https,
2、然后重启服务:
net stop webclient
net start webclient

1、打开我的电脑=>点计算机=>点映射网络驱动器
技术分享图片

2、在文件夹位置填写webdav 服务的访问地址

技术分享图片

3、连接上后,会让你输入账号密码
技术分享图片

4、点击完成就连接成功了
技术分享图片

Centos 7 映射网络驱动

yum -y install davfs2
mkdir /mnt/test
mount -t davfs http://xxx.xxx.xxx:8080/ /mnt/test/

mac os 映射网络驱动

在 Mac 上的“访达” 中,选取“前往”>“连接服务器”,在“服务器地址”栏中输入服务器的地址,然后点按“连接”。

webdav 客户端 for win

根据自己的测试,windows下还是专用的客户端比较稳定,我测试的是cyberduck 。
下载地址 https://cyberduck.io/

配置参数说明

官网 http://nginx.org/en/docs/http/ngx_http_dav_module.html
中文翻译 https://blog.lyz810.com/article/2016/05/ngx_http_dav_module_doc_zh-cn/

感谢百度,让我不断获取知识

以上是关于nginx实战 WebDAV 模块 http_dav_module的主要内容,如果未能解决你的问题,请参考以下文章

笔记用宝塔nginx开启webdav服务

markdown Nginx Webdav Conf

nginx状态模块详解及实战

NGINX 之 状态模块实战 之五

Nginx服务——rewrite模块应用实战

Nginx实战之autoindex模块源码解析