在 Nginx 搭建 WebDAV 是在已有模組的基礎上。如何安裝 WebDAV 模組請查看文章:https://bmzhp.com/experience/215.html
要在 Nginx 上搭建 WebDAV 服務,請按照以下步驟:
-
確認 Nginx 已經安裝並正常運作。
-
創建一個 WebDAV 根目錄,並授予寫入權限。例如,您可以使用以下命令來創建並授予權限:
1 2
mkdir /path/to/webdav chown www-data:www-data /path/to/webdav
若您的環境是 LNMP,使用者需要改為 www,所以命令應為 chown -R www:www /path/to/webdav
。
-
配置 Nginx 以啟用 WebDAV 模組,並指定 WebDAV 根目錄。將以下程式碼添加到 Nginx 配置檔中:
1 2 3 4 5 6 7
location /webdav { alias /path/to/webdav; client_body_temp_path /var/nginx/client_temp; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access user:rw group:rw all:r; }
在上面的程式碼中,“/webdav”是您要映射到 WebDAV 服務的 URL 路徑,而“/path/to/webdav”則是 WebDAV 根目錄。您可以根據需要修改這些值。
在 Nginx 中,client_body_temp_path
指令用於指定接收客戶端請求正文的臨時檔案儲存路徑。WebDAV 協議允許對大型檔案進行操作,這可能會導致上傳或下載過程中的內存消耗過多。為了避免內存溢出問題,Nginx 會將上傳的大檔案先緩存到磁碟上,然後再寫入 WebDAV 根目錄。
因此,在配置 WebDAV 服務時,通常需要設置 client_body_temp_path
指令來指定磁碟上的臨時檔案儲存路徑。該指令必須置於 location
指令內,以確保其僅適用於 WebDAV 服務。
上述的 WebDAV 配置程式碼並不允許匿名訪問和上傳檔案。
在這段程式碼中,dav_access
指令指定在訪問 WebDAV 服務時需要使用用戶名和密碼進行認證。如果您未為 WebDAV 服務指定用戶名和密碼,則無法訪問該服務,更無法上傳檔案。
以下是具有匿名訪問權限的示例配置(不建議在生產環境中使用):
|
|
在這個配置中,dav_access
指令的參數為“group:rw all:r”,表示任何人皆可以只讀方式訪問該 WebDAV 服務,且只有所屬群組的用戶才能以讀/寫方式訪問該服務。
請注意,如果允許匿名上傳檔案,這可能會導致安全問題。建議在確保安全的情況下再啟用匿名上傳權限。
- 重新加載 Nginx 配置檔以使更改生效:
|
|
現在,您的 Nginx 伺服器上已成功部署 WebDAV 服務。您可以使用任何支援 WebDAV 協議的客戶端,如 Windows 檔案總管或 Cyberduck 等,連接到 WebDAV 服務並訪問其中的檔案。請注意,您需要使用具有寫入權限的用戶身份驗證來上傳和修改檔案。