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协议的支持。html

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

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

编译

nginx 环境搭建见前文 http://www.javashuo.com/article/p-prqbqfwo-cy.html, 此处只写webdav 模块git

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是没法经过映射网络驱动器的方法进行挂载的。解决方法以下:
一、修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters,把BasicAuthLevel 值改为2,即同时支持http和https,默认只支持https,
二、而后重启服务:
net stop webclient
net start webclientgithub

一、打开个人电脑=>点计算机=>点映射网络驱动器
nginx实战(二)  WebDAV 模块 http_dav_moduleweb

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

nginx实战(二)  WebDAV 模块 http_dav_module

三、链接上后,会让你输入帐号密码
nginx实战(二)  WebDAV 模块 http_dav_module服务器

四、点击完成就链接成功了
nginx实战(二)  WebDAV 模块 http_dav_module网络

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/ide

配置参数说明

官网 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/

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

相关文章
相关标签/搜索