時間:2022-12-08來源:www.djmaza-info.com作者:電腦系統城
title: 基于Nginx搭建WebDAV服務
categories:
- [IT,網絡,服務]
tags:
- WebDAV
- Nginx
comments: true
date: 2022-11-09 17:19:46
description:
在搭建 Joplin 筆記服務的時候,發現了可以通過 WebDAV 服務來實現云筆記的功能,所以本篇就來介紹一下,怎么快速搭建 WebDAV 服務。
WebDAV (Web-based Distributed Authoring and Versioning) 一種基于 HTTP 1.1協議的通信協議。它擴展了HTTP 1.1,在GET、POST、HEAD等幾個HTTP標準方法以外添加了一些新的方法,使應用程序可對[Web Server](https://baike.baidu.com/item/Web Server/9306055?fromModule=lemma_inlink)直接讀寫,并支持寫文件鎖定(Locking)及解鎖(Unlock),還可以支持文件的版本控制。
從我的角度,簡單地理解為,類似于FTP服務,提供網絡文件交互服務??梢允褂糜脩裘兔艽a來控制訪問,通過特定的客戶端,可以直接存儲、下載、編輯文件。
這里我是用寶塔面板來實現整個過程的,知曉原理后,也可以用其他類似的手段實現。
官方安裝示例 [Nginx http_dav_module](Module ngx_http_dav_module (nginx.org))
在寶塔面板,Nginx 安裝中選擇 編譯安裝,并點擊 添加自定義模塊。
1 2 3 4 |
模塊名稱:http_dav_module 模塊描述:webdev 模塊參數:--with-http_dav_module --add-module= /root/nginx-dav-ext-module 前置腳本:git clone https: //github .com /arut/nginx-dav-ext-module .git /root/nginx-dav-ext-module |
nginx-dav-ext-module 介紹
標準的 ngx_http_dav_module 提供了部分WebDAV實現,僅支持GET、HEAD、PUT、DELETE、MKCOL、COPY和MOVE方法。要在 Nginx 中獲得完整的 WebDAV 支持,您需要啟用 ngx_http_dav_module 以及此模塊(nginx-dav-ext-module)以補充缺少的方法,如:PROPFIND,OPTIONS,LOCK,UNLOCK。
添加一個新網站
在配置文件中添加以下內容(別忘了還要添加第二行代碼,就在server
上面添加):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
http { dav_ext_lock_zone zone=foo : 1m; # 默認鎖超時值為 1 分鐘 ... server { ... location / { root /www/wwwroot/webdav; client_body_temp_path /www/wwwroot/webdav/client_temp; #client_max_body_size 102400M;#大文件支持 dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on ; dav_access user : rw group : rw all : r; autoindex on ; # 需要 nginx-dav-ext-module 才有下面的選項 dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; dav_ext_lock zone=foo; } } } |
在 網站目錄 加入密碼保護即可
接下來,就可以在需要 WebDAV 服務的地方使用了。
比如:Joplin
WebDAV URL:就是你訪問那個 WebDAV 網站的地址
用戶名和密碼:就是剛才設置的密碼訪問
到此這篇關于基于Nginx搭建WebDAV服務的文章就介紹到這了
2022-12-08
利用VSCode進行遠程Linux服務器、容器開發,達到ide開發項目的效果(最新推薦)2022-12-08
Nginx Gunicorn flask項目部署思路分析詳解2022-12-08
Nginx訪問本地靜態資源詳細步驟(推薦)方法一:利用yum源來安裝jdk(此方法不需要配置環境變量) 方法二:用rpm安裝jdk(可以使用man rpm命令查看rpm的幫助文檔) 方法三:手動解壓JDK的壓縮包,然后設置環境變量...
2022-12-08
0 本地ide式開發 1.0 局域網下遠程終端開發 1.1 局域網下遠程ide式開發 1.2 公網下遠程ide式開發 1、購買一個阿里云服務器 2、阿里云服務器終端內 2.1、先開放端口 2.2、接下來配置frp 2.3、設置自啟動 3、內網linux...
2022-12-06