宝塔面板nginx编译webdav模块 – 建立webdav服务器

2020年3月1日23:55:24宝塔面板10130,4512967字阅读模式

要想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 我们可以看到两个模块已经编译成功,如图:

宝塔面板nginx编译webdav模块 – 建立webdav服务器

8、配置webdav服务器

模块安装好之后,就可以配置一个webdav,我们利用宝塔面板来做这件事情还是容易的。

8.1》新建网站:

在宝塔面板中新建网站,额,你事先要解析好域名,这个就不用多说了吧。

8.2》网站配置

网站新建好之后,我们需要配置网站,在配置文件中放置如下代码:

此处为隐藏的内容!
发表评论并刷新,方可查看
具体的放置的位置如图:

宝塔面板nginx编译webdav模块 – 建立webdav服务器

8.3》设置密码访问

还是在网站设置里面在”网站目录“中设置密码,即可满足给你的webdav服务武器使用用户名和密码访问的要求。

宝塔面板nginx编译webdav模块 – 建立webdav服务器

保存之后,就可以使用了。

9、下载客户端以及简单使用

9.1》下载软件

大鸟这里用Cyberduck 来作为客户端使用。

下载地址:https://cyberduck.io

9.2》配置客户端连接

直接看图吧,因为大鸟这里没有申请ssl,所以直接用80端口链接,如图:

宝塔面板nginx编译webdav模块 – 建立webdav服务器

9.3》简单使用

连接之后,我们就可以把自己多余的服务器作为网盘来使用了,文件可以直接复制url分享,上传直接拖拉即可,还是很方便的,如图:

宝塔面板nginx编译webdav模块 – 建立webdav服务器

如果你要分享,可以复制url直接分享,如图:

宝塔面板nginx编译webdav模块 – 建立webdav服务器

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

weinxin
微信公众号
关注大鸟博客公众号
大鸟
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定

评论:101   其中:访客  99   博主  2
    • 不规范
      不规范 0

      很实用的一个教程,感谢分享

      • mjj
        mjj 1

        感谢分享,待会试试

        • mjj
          mjj 1

          为啥运行7.nginx文件替换
          cp objs/nginx /www/server/nginx/sbin/
          时提示 报错并提示 cp: cannot stat ‘objs/nginx’: No such file or directory?

            • 大鸟
              大鸟

              @ mjj 如果你用的是宝塔,出现这个错误肯定是你没有编译安装nginx,而是选择极速安装了。

            • bn
              bn 0

              这个要收藏了

              • test
                test 0

                真的很不错,谢谢

                • 江南
                  江南 3

                  看看webdav怎么玩

                  • 学习一下
                    学习一下 1

                    评论一下,装好了就差配置了

                    • xinber
                      xinber 0

                      谢谢实用的教程。。

                      • tj
                        tj 1

                        很实用的一个教程,感谢分享

                        • tj
                          tj 1

                          很实用的一个教程,我也试试

                          • angkor
                            angkor 0

                            很实用的一个教程,感谢分享

                            • 哒哒
                              哒哒 0

                              厉害了,看看

                              • yuluo
                                yuluo 4

                                感谢分享

                                • dajj
                                  dajj 0

                                  感谢分享。

                                  • 克里斯
                                    克里斯 1

                                    谢谢楼主

                                    • 克里斯
                                      克里斯 1

                                      试试看,不知道能不能行

                                      • zz
                                        zz 1

                                        实用的一个教程,感谢分享

                                        • zz
                                          zz 1

                                          感谢分享

                                          • 菜鸡
                                            菜鸡 0

                                            请问 –with-http_dav_module –add-module=/www/server/nginx/src/nginx-dav-ext-module 需要添加到哪里

                                            • kob
                                              kob 0

                                              学习学习了

                                              • 不想评论
                                                不想评论 0

                                                不想评论的,非要评论

                                                • 特好
                                                  特好 1

                                                  特别好的资源,支持一下下

                                                  • 特好
                                                    特好 1

                                                    特别好的资源,支持一下

                                                    • wami8282
                                                      wami8282 1

                                                      希望好用啊

                                                      • weizai408
                                                        weizai408 0

                                                        看看什么内容

                                                        • 看看怎么配置 看看怎么配置 看看怎么配置
                                                          看看怎么配置 看看怎么配置 看看怎么配置 0

                                                          感谢分享,待会试试

                                                          • mary
                                                            mary 0

                                                            很实用的一个教程,感谢分享

                                                            • wz
                                                              wz 1

                                                              宝塔直接编译会出错,就很奇怪

                                                              • 很实用的一个教程,感谢分享
                                                                很实用的一个教程,感谢分享 0

                                                                很实用的一个教程,感谢分享

                                                                • haha
                                                                  haha 1

                                                                  我来试试