采用 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






暂无评论内容