搭建了一个webDAV服务

采用 Docker 提供核心服务 + Nginx 提供安全反代 的方案。

以下是完整的步骤:

1. 创建本地数据目录

首先,在你的服务器宿主机上创建一个用来存储 WebDAV 文件的目录。

Bash

# 创建目录(路径你可以根据自己服务器的磁盘划分来自定义)
mkdir -p /opt/webdav/data

# 赋予适度的权限(确保 Docker 内部的用户能够写入)
chmod 777 /opt/webdav/data

2. 启动 Docker 容器

我们使用官方推荐且轻量的 bytemark/webdav 镜像。直接运行以下命令(请自行修改账号和密码):

Bash

docker run -d \
  --name my-webdav \
  --restart always \
  -p 8080:80 \
  -e AUTH_TYPE=Basic \
  -e USERNAME=你的自定义账号 \
  -e PASSWORD=你的自定义密码 \
  -v /opt/webdav/data:/var/lib/dav \
  bytemark/webdav

参数解析:

  • -p 8080:80:将容器的 80 端口映射到服务器本地的 8080 端口。
  • -e USERNAME/PASSWORD:设定你访问 WebDAV 的账号密码。
  • -v ...:将你刚才创建的宿主机目录映射到容器内部的数据存储路径。

此时,WebDAV 已经在你服务器的 127.0.0.1:8080 上安全运行了。

3. 配置 Nginx 反向代理(关键一步)

为了安全(HTTPS)和解决大文件上传限制,你需要修改你的 Nginx 配置文件。在你的域名或站点的 server 块中加入以下配置:

Nginx

server {
    listen 443 ssl;
    server_name your.domain.com; # 替换为你的域名

    # 你的 SSL 证书配置 (省略...)
    
    # 这一行极其重要:解除 Nginx 默认的 1MB 上传限制,否则 WebDAV 传不了大文件
    client_max_body_size 10000M; 

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebDAV 需要的基础代理配置
        proxy_set_header Destination $http_destination;
        proxy_http_version 1.1;
    }
}

配置完成后,执行 nginx -t 检查语法,没问题的话就 nginx -s reload 重启 Nginx。

4. 连接测试

现在你可以使用客户端连接了:

  • 服务器地址: https://your.domain.com
  • 账号密码: 刚才在 Docker 命令里设置的用户名和密码。
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容