一、前言
最近发现了一款比较好的文档管理神器 joplin ,它适用于 Linux、Windows、macOS、Android 和 iOS 平台。支持端到端加密、支持 Markdown 以及通过 NextCloud、Dropbox、OneDrive 或 WebDAV 等第三方服务进行同步。刚好符合个人对多平台支持、免费、安全的要求。由于以前用过一款比较好的笔记软件“麦库笔记”,但是数据同步等基于服务商,由于免费等迫于经营压力情况下,停服了,于是找到了这款平替软件。鉴于以前的情况,于是我搭建了自己的WebDAV服务进行笔记同步,这样保证手机端、PC端日志共享,这里我们重点介绍下如何在CentOS下使用Nginx搭建WebDAV服务,其他类Linux系统大同小异。
二、部署WebDAV
2.1 WebDAV模块安装
首先,我们需要安装Nginx和Nginx的WebDAV模块。nginx进行搭建,ngixn下载安装可以参考 《nginx反向代理设置ssl,支持https》 , 《如何对在用的nginx添加新模块》 。由于Nginx 的自有模块对 WebDAV 协议的支持并不完整,可以通过第三方模块 nginx-dav-ext-module 增加文件特性查找和对写文件的加锁与解锁支持。这里我们需要提前下载nginx-dav-ext-module和headers-more-nginx-module。使用下面命令进行安装:
1 | ./configure --prefix=/opt/nginx ..... --with-http_dav_module --add-module=/opt/soft/nginx-dav-ext-module-3.0.0 --add-module=/opt/soft/headers-more-nginx-module-0.37 |
安装过程可能会报错,可能是需要安装一下依赖,请根据实际情况判断:libxml2、libxml2-devel、libxslt-devel、libpcre3-dev zlib1g-dev。
然后执行make后,拷贝nginx执行文件到sbin下进行替换。
2.2 创建WebDAV目录
1 | mkdir /opt/nginx/dav_file |
2.3 创建WebDAV用户
1 | yum -y install apache2-utils |
这个命令会提示你输入密码,输入完成后,我们最好设置下文件权限。
1 | chmod 644 /opt/nginx/conf/davpasswd |
2.4 配置Nginx
在nginx的http下增加如下内容:
1 | server { |
2.5 登陆验证
重载下nginx配置。
1 | /opt/nginx/sbin/nginx -s reload |
浏览器访问:http://IP:PORT 就会提示需要账户和密码,我们输入上面配置密码后便可进入。