要想Nginx支持WebDAV,需要手动添加http_dav_module和nginx-dav-ext-module模块。http_dav_module模块是nginx默认的模块,但是也需要手动编译。
这两个模块编译之后,我们可以使用nginx建立一个WebDAV服务器,可以进行上传下载等基本的操作,还可以设置基于用户名和密码的身份验证的访问。我们还是基于宝塔面板来设置和部署。
具体的设置和部署
1、前言
这里是宝塔面板7.x版本nginx的编译安装模块,注意,nginx一定要是编译安装。模块的项目地址如下:
github:https://github.com/arut/nginx-dav-ext-module
2、Nginx文件备份
编译前先将已经安装的Nginx文件进行备份,通过ps命令查看nginx文件的路径。以下所有步骤都以自身nginx路径为准。使用如下命令查找路径。
ps -elf | grep nginx
命令执行之后,我们会得到宝塔面板nginx的具体路径:/www/server/nginx/sbin/nginx
所以,我们继续执行下面的命令:
cd /www/server/nginx/sbin/ #进入到路径 cp nginx nginx.bak #备份nginx
3、下载Nginx fancyindex模块
git clone https://github.com/arut/nginx-dav-ext-module.git
4、拷贝至src目录
cp -R ./ngx-fancyindex /www/server/nginx/src
5、nginx -V
我们需要知道目前nginx编译了哪些模块,具体如下:
cd /www/server/nginx/src nginx -V
注意:这里的‘V’是大写,我们看到目前的的模块,然后全部复制到一个记事本中备用。然后在最后面添加:”--with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module
“
6、开始编译
具体的编译代码如下,nginx版本是1.17.6,是宝塔面板的可以完全复制过去了。注意需要进入到:/www/server/nginx/src
编译才会有效。
./configure --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module
回车之后,输入代码:
make
7、nginx文件替换
make完成后将系统中原有的nginx用重新编译生成的nginx文件替换,替换后重启nginx使新编译nginx生效,具体命令如下:
rm -rf /www/server/nginx/sbin/nginx cp objs/nginx /www/server/nginx/sbin/ service nginx restart
执行命令nginx -V
我们可以看到两个模块已经编译成功,如图:
8、配置webdav服务器
模块安装好之后,就可以配置一个webdav,我们利用宝塔面板来做这件事情还是容易的。
8.1》新建网站:
在宝塔面板中新建网站,额,你事先要解析好域名,这个就不用多说了吧。
8.2》网站配置
网站新建好之后,我们需要配置网站,在配置文件中放置如下代码:
8.3》设置密码访问
还是在网站设置里面在”网站目录“中设置密码,即可满足给你的webdav服务武器使用用户名和密码访问的要求。
保存之后,就可以使用了。
9、下载客户端以及简单使用
9.1》下载软件
大鸟这里用Cyberduck 来作为客户端使用。
下载地址:https://cyberduck.io
9.2》配置客户端连接
直接看图吧,因为大鸟这里没有申请ssl,所以直接用80端口链接,如图:
9.3》简单使用
连接之后,我们就可以把自己多余的服务器作为网盘来使用了,文件可以直接复制url分享,上传直接拖拉即可,还是很方便的,如图:
如果你要分享,可以复制url直接分享,如图:
10、最后
利用宝塔面板来搭建webdav服务器的话还是很方便的,我们只需要安装2个模块就可以工作了,我们还可以申请免费的ssl证书,让连接更安全。
感觉webdav和FTP有点像,都是上传文件,但是webdav是使用的HTTP协议,这在复杂的网络环境中很有优势(比如防火墙只开通了80端口),而且可以使用https来加密文件,用FTP一般是没加密的,而且在IOS系统上的很多软件都是支持webdav的。这样使用webdav就可以在所有设备上同步共享文件了。
参考资料:
- http://nginx.org/en/docs/http/ngx_http_dav_module.html
- https://github.com/arut/nginx-dav-ext-module
91F
学习一下
92F
谢谢大佬,q前来学习
93F
学习一下哈
94F
学习下
95F
很好的
96F
谢谢大佬,q前来学习
97F
有需求
98F
前排就坐!
99F
学习了!
100F
认真学习下
101F
学习一下
102F
感谢你的分享。我要看代码,谢谢!
103F
看看学习一下!很有用啊!
104F
谢谢你
105F
谢谢分享