前言
- 用 NGINX 配置一個 WebDAV Server
- 使用者可透過帳號密碼登入存取指定資料夾
環境
GCP Instance
Ubuntu 18.04
NGINX
Root
安裝
apt-get install nginx-full |
開啟 gzip
頻寬有限, 機器速度較快, 開啟 gzip 讓 server 回覆的資料都先經過壓縮, 減少經由網路傳送的資料大小sed -i '/gzip_/ s/#\ //g' /etc/nginx/nginx.conf
/gzip_/: 尋找含有 /gzip_/
的行數
s/#\ //g: 將 #
替換成 空白
意思就是 uncomment 掉 gzip 啦
配置 WebDAV Server
建立檔案vim /etc/nginx/conf.d/webdav.conf
配置檔案server {
listen 80;
listen [::]:80;
server_name yourDomain;
# 使用者認證
auth_basic realm_name;
# 使用者身份檔案位置
auth_basic_user_file /etc/nginx/.passwords.list;
# dav 允許的使用方法
dav_methods PUT DELETE MKCOL COPY MOVE;
# 在目前的範圍內啟動支持特定的 WebDAV 方法, PROPFIND 可參考 https://docs.oracle.com/cd/E19857-01/819-0824/agdav.html
dav_ext_methods PROPFIND OPTIONS;
# 在此資料夾內, 新建的文件以及資料夾的權限, 若無特別設定, 預設為 user:rw。 若以指定 all 及 group 權限, 則 user 可忽略
dav_access user:rw group:rw all:r;
# 臨時中轉目錄
client_body_temp_path /tmp/nginx/client-bodies;
# 上傳檔案最大限制, 0 為不限制
client_max_body_size 0;
# 允許在現有目錄中增加檔案時, 如果指定的資料夾不存在, 自動創建
create_full_put_path on;
}
建立使用者
- 輸入 user
echo -n 'userName:' | sudo tee -a /etc/nginx/.passwords.list;
印出使用者名稱, tee
會將使用者名稱印在螢幕上以及導入 /etc/nginx/.passwords.list 檔案, -a
= append
- 輸入密碼
openssl passwd -apr1 | sudo tee -a /etc/nginx/.passwords.list;
使用 openssl passwd
的 -apr1 規則來將密碼明文變成密文, tee
印出加密後密碼以及導入 /etc/nginx/.passwords.list 檔案, -a
= append
留言