通过nginx做资源下载站,很多运维小伙伴应该是比较熟悉的了。不过用nginx做webdav,可能还有小伙伴不是很清楚。
什么是webdav?
WebDAV是一组基于超文本传输协议的技术集合,有利于用户间协同编辑和管理存储在万维网服务器文档。通俗来说就是,WebDAV可以让用户直接存储、下载、编辑文件,当然了,操作文件前需进行用户认证。
基于nginx快速搭建webdav服务
小伙伴可以使用我打包的nwebdav镜像,这个镜像是基于nginx官方1.22版本制作,安全可靠。
# 如果是测试环境,可以使用下面的命令,映射端口默认是49153:
~]# docker run --rm -dP lutixiaya/nwebdav:latest
aa97965d112ecd37b952ae2015864a44a89f0a0fa023585ba7739ab47e8a9d37
# 如果想持久化数据和指定端口映射,可以使用下面的命令:
~]# docker run -v /data/dav:/usr/local/nginx/html -d -p 80:80 lutixiaya/nwebdav:latest
~]# chmod o+w /data/dav
通过浏览器访问服务器ip:port,如果端口不对,可以通过docker ps | grep nwebdav
确认:
~]# docker ps | grep nwebdav
f46fbeb180b5 lutixiaya/nwebdav:latest "/usr/local/nginx/sb…" 49 seconds ago Up 48 seconds 0.0.0.0:49153->80/tcp, :::49153->80/tcp practical_carver
通过浏览器可以正常浏览文件信息,和之前部署下载站并没有区别。如果想实现上传、删除、移动等文件操作,可以使用webdav客户端,比如winscp/RaiDrive等等。
下面使用winscp工具演示:
1、点击新建站点
2、选择协议
3、输入服务器ip
4、输入端口
5、输入用户名
6、输入密码
7、登录
左边是本地文件,右边是服务器文件。
文件的上传和下载就是简易的拖拽,上传就是把左边的文件拖到右边,下载就是把右边的文件拖到左边。
也可以单击右键,进行文件删除,重命名等操作。
其他功能可以多多尝试。
可能故障
如果通过winscp无法连接,是win10对WebDAV默认只支持https协议,需要修改注册表后才可以同时支持https和http。
解决方法:
点击开始菜单
,在运行输入框中输入regedit
敲回车打开注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
位置,修改BasicAuthLevel
值改成2
# 重启webclient
net stop webclient
net start webclient