CentOS7部署WebDav服务

苹果系统上很多APP支持跨设备同步,实现方式不一,有的是用iCloud,有的是用自建的同步服务器,但速度不是太理想,延迟较高。

就拿我常用的OmniFoucs来说,用的是Omni免费的同步服务,同步一次要几十秒,经常出现早上在电脑改了状态,手机上晚上还没同步过来的情况。好在OmniFoucs支持自定义的WebDav服务,加之本人有台国内服务器,就自建了一个WebDav服务,迁移之后基本上秒同步,爽!

后续把Notability上的文档也备份到了该服务器里。

服务器操作系统:Centos7.8

Linux下可以用Nginx或Apache来部署WebDav服务,也可以用单独的组件。

这里用的是一个Go语言写的WebDAV Server,Github 项目地址:https://github.com/hacdias/webdav

部署流程如下。

1. 下载配置WebDav

/usr/local下新建webdav目录。

下载并解压到指定目录,当前最新版本为4.1.0

cd /usr/local/webdav
wget https://github.com/hacdias/webdav/releases/download/v4.1.0/linux-amd64-webdav.tar.gz
tar -xvzf linux-amd64-webdav.tar.gz

/usr/local/webdav目录下新建一个配置文件config.yaml,内容如下

# Server related settings
address: 0.0.0.0
port: 15108
auth: true
tls: false
cert: cert.pem
key: key.pem

# Default user settings (will be merged)
scope: .
modify: true
rules: []

users:
  - username: user1
    password: password1
    scope: /data/webdav/dir1

对外服务的端口号为15108,需要在安全组或防火墙里放开。

目录/data/webdav/dir1用于存储user1的文件,需要手动创建。

如果有多个用户,则遵循yaml的文件规范,按user1的格式添加到下面即可。

2. 添加服务

/usr/lib/systemd/system/下新建文件webdav.service,内容如下

[Unit]
Description=WebDAV server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/webdav/webdav --config /usr/local/webdav/config.yaml
Restart=on-failure

[Install]
WantedBy=multi-user.target

3. 启动WebDav服务

systemctl daemon-reload
systemctl enable webdav
systemctl start webdav

查看服务状态

systemctl status webdav

输出类似如下

● webdav.service - WebDAV server
   Loaded: loaded (/usr/lib/systemd/system/webdav.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-08-31 17:34:08 CST; 20h ago
 Main PID: 10032 (webdav)
   CGroup: /system.slice/webdav.service
           └─10032 /usr/local/webdav/webdav --config /usr/local/webdav/config.yaml

至此,WebDav服务已经部署完成。

Leave a Comment

豫ICP备19001387号-1