原由: 由于想省力, 使用了国内免费的坚果云webdav服务, 虽然是免费, 但对请求并发数有一定限制, 使用joplin进行同步笔记的时候, 如果并发数过高,会导致请求返回403,服务器拒绝服务,从而引发同步异常,笔记丢失事件!!
- 即使是官方也不推荐, https://github.com/laurent22/joplin/blob/5214da0a4475fb84bf1f11b419f5f7f35592c43a/readme/faq.md
所以为此自行搭建webdav服务器,以免再发生笔记丢失事件!
- 方案一: ubuntu + nginx搭建
- 下载安装nginx
sudo apt install -y nginx-full
sudo mkdir -p /home/dav
sudo chown -R www-data:www-data /home/dav - 安装密码管理工具
apt install apache2-utils
htpasswd -bc /etc/nginx/htpasswd {user} {password} - 编辑配置文件
sudo vim /etc/nginx/sites-enabled/webdav.conf
- 下载安装nginx
server {
listen 80;
server_name {公网IP}
# 设置使用utf-8编码,防止中文文件名乱码
charset utf-8;
# 打开目录浏览功能, 允许在浏览器直接浏览文件目录
# autoindex on;
# 默认存放文件的路径
root /home/dav;
auth_basic realm_mame;
# 用户密码文件存放位置
auth_basic_user_file /etc/nginx/htpasswd;
# dav 允许的操作
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
# 创建文件的默认权限
dav_access user:rw group:rw all:r;
# 临时文件位置
client_body_temp_path /tmp;
# 最大上传文件限制, 0表示无限制
client_max_body_size 0;
# 允许自动创建文件夹(如果有需要的话)
create_full_put_path on;
}
- 重启nginx
sudo nginx -s reload- 测试
5.1) 下载 https://www.raidrive.com/测试
5.2)去除注释autoindex on;打开目录浏览功能
5.2.1) curl -u user:passwd http://ip/
- 成功
- 失败
5.2.2) 浏览器 ip访问输入账号密码
- 成功
-
失败
- 错误的账号密码
-
joplin测试成功
-
方案二: windows server 2016 + apache搭建
- 下载Apache https://httpd.apache.org/
- 创建认证文件
C:\xampp\apache\bin\htpasswd.exe -bc "C:/xampp/webdav/basic.passwd" {admin} {passwd} - 编辑文件 C:\xampp\apache\conf\httpd.conf, 去除下列#号,保存
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
Include conf/extra/httpd-dav.conf - 编辑文件C:\xampp\apache\conf\extra\httpd-dav.conf
Alias /joplin "C:/xampp/webdav/joplin"
<Directory "C:/xampp/webdav/joplin">
Dav On
Order Allow,Deny
Allow from all
# 认证方式为 Basic, joplin只支持此种方式
AuthType Basic
AuthName DAV-upload
# 打开目录浏览功能
Options Indexes
# 设置用户帐户密码文件
AuthUserFile "C:/xampp/webdav/basic.passwd"
AuthDigestProvider file
Require user admin
</Directory>
- 重启apache
C:\xampp\apache\bin httpd –k restart测试
-
成功
-
采坑记录
只支持Basic方式认证, 当使用auth_digest时,认证不成功,
查看 C:\xampp\apache\logs\error.log, 提示
client used wrong authentication scheme Basic
显然遭遇同样问题的,还有不少使用该软件的人