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/

感謝百度,讓我不斷獲取知識

相關文章
相關標籤/搜索