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的主要内容,如果未能解决你的问题,请参考以下文章