1. 程式人生 > >nginx實戰(二) WebDAV 模塊 http_dav_module

nginx實戰(二) WebDAV 模塊 http_dav_module

var onf 時間 讓其 stop star 功能 con name

前言

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_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters,把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