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