基于Nginx搭建WebDAV服务
title: 基于Nginx搭建WebDAV服务
categories:
- [IT,网络,服务]
tags:
- WebDAV
- Nginx
comments: true
date: 2022-11-09 17:19:46
description:
基于Nginx搭建WebDAV服务
在搭建 Joplin 笔记服务的时候,发现了可以通过 WebDAV 服务来实现云笔记的功能,所以本篇就来介绍一下,怎么快速搭建 WebDAV 服务。
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对[Web Server](https://baike.baidu.com/item/Web Server/9306055?fromModule=lemma_inlink)直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
从我的角度,简单地理解为,类似于FTP服务,提供网络文件交互服务。可以使用用户名和密码来控制访问,通过特定的客户端,可以直接存储、下载、编辑文件。
搭建与配置
这里我是用宝塔面板来实现整个过程的,知晓原理后,也可以用其他类似的手段实现。
官方安装示例 [Nginx http_dav_module](Module ngx_http_dav_module (nginx.org))
重新安装 Nginx
在宝塔面板,Nginx 安装中选择 编译安装,并点击 添加自定义模块。

添加自定义模块
模块名称:http_dav_module
模块描述:webdev
模块参数:--with-http_dav_module --add-module=/root/nginx-dav-ext-module
前置脚本:git clone https://github.com/arut/nginx-dav-ext-module.git /root/nginx-dav-ext-module

nginx-dav-ext-module 介绍
标准的 ngx_http_dav_module 提供了部分WebDAV实现,仅支持GET、HEAD、PUT、DELETE、MKCOL、COPY和MOVE方法。要在 Nginx 中获得完整的 WebDAV 支持,您需要启用 ngx_http_dav_module 以及此模块(nginx-dav-ext-module)以补充缺少的方法,如:PROPFIND,OPTIONS,LOCK,UNLOCK。
部署 WebDAV 网站服务
添加一个新网站

在配置文件中添加以下内容(别忘了还要添加第二行代码,就在server上面添加):
http {
dav_ext_lock_zone zone=foo:1m; # 默认锁超时值为 1 分钟
...
server {
...
location / {
root /www/wwwroot/webdav;
client_body_temp_path /www/wwwroot/webdav/client_temp;
#client_max_body_size 102400M;#大文件支持
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
autoindex on;
# 需要 nginx-dav-ext-module 才有下面的选项
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
dav_ext_lock zone=foo;
}
}
}

在 网站目录 加入密码保护即可

应用
接下来,就可以在需要 WebDAV 服务的地方使用了。
比如:Joplin

WebDAV URL:就是你访问那个 WebDAV 网站的地址
用户名和密码:就是刚才设置的密码访问
基于Nginx搭建WebDAV服务的更多相关文章
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
- CentOS6下基于Nginx搭建mp4/flv流媒体服务器
CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源 [roo ...
- windows环境下基于nginx搭建rtmp服务器
基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...
- 基于nginx搭建简易的基于wcf集群的复杂均衡
很多情况下基于wcf的复杂均衡都首选zookeeper,这样可以拥有更好的控制粒度,但zk对C# 不大友好,实现起来相对来说比较麻烦,实际情况下,如果 你的负载机制粒度很粗糙的话,优先使用nginx就 ...
- .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡
1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...
- Java开发架构篇:领域驱动设计架构基于SpringCloud搭建微服务
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 微服务不是泥球小单体,而是具备更加清晰职责边界的完整一体的业务功能服务.领域驱动 ...
- 基于nginx搭建yum源服务器
1.首先关闭防护墙或者设置规则通过且关闭selinux 停止firewall systemctl stop firewalld 禁止firewall开机启动 systemctl disable f ...
- 基于IKAnalyzer搭建分词服务
背景 前端高亮需要分词服务,nlp团队提供的分词服务需要跨域调用,而且后台数据索引使用的IK分词.综合评价,前端分词也需要基于IK分词器. IKAnalyzer服务已经停止更新,且对Lucene支持仅 ...
- centos7.x下环境搭建(五)—nginx搭建https服务
https证书获取 十大免费SSL证书 https://blog.csdn.net/ithomer/article/details/78075006 如果我们用的是阿里云或腾讯云,他们都提供了免费版的 ...
- 基于Nginx的https服务
1.HTTPS协议的实现 1.为什么需要HTTPS? 原因:HTTP不安全 1.传输数据被中间人盗用.信息泄露 2.数据内容劫持.篡改 对传输内容进行加密以及身份验证 2.对称加密 非对称加密 3.H ...
随机推荐
- 在 CentOS 8 上使用 FirewallD 设置防火墙
简介 一个 Linux 防火墙可用于保护您的工作站或服务器免受不需要的流量干扰.您可以设置规则来阻止或允许流量通过.CentOS 8 带有一个动态的.可定制的基于主机的防火墙和一个 D-Bus 接口. ...
- MinIO Docker 快速入门
官方文档地址:http://docs.minio.org.cn/docs/master/minio-docker-quickstart-guide 在Docker中运行MinIO单点模式 MinIO ...
- rabbitmq的内存节点和磁盘节点
RabbitMQ集群里有内存节点与磁盘节点之分. 所谓内存节点,就是将元数据(metadata)都放在内存里,磁盘节点就是放在磁盘上.(内存节点将全部的队列,交换器,绑定关系,用户,权限,和vhost ...
- 打造企业自己代码规范IDEA插件(中)
一些基本概念 在开始独立研发公司自己的代码规范检查规则之前,先介绍一些相关的基本概念.阿里巴巴代码规范很多规则其实都是基于开源框架PMD进行的研发.PMD用官方的话语介绍来说:PMD是一个源代码分析器 ...
- Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
前言 最近把Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就折 ...
- 通过openlayers加载dwg格式的CAD图并与互联网地图叠加
Openlayers介绍 Openlayers是一个基于Javacript开发,免费.开源的前端地图开发库,使用它,可以很容易的开发出WebGIS系统.目前Openlayers支持地图瓦片.矢量数 ...
- 两个行内元素在一起,会出现一定的间距,即使将border、padding、margin都设置为零也无济于事,那么怎么才能去除这些间距呢?
首先这里的div设置为了行内块元素,span本身为行内元素,并且设置了* {padding: 0; margin: 0;},那怎么清除元素之间的空白缝隙呢?? (1)给元素加浮动 <!DOCTY ...
- 九、kubernetes命令行工具kubectl
为了方便在命令行下对集群.节点.pod进行管理,kubernetes官方提供了一个管理命令:kubectl kubectl作为客户端CLI工具,可以让用户通过命令行对Kubernetes集群进行操作. ...
- 如何免安装使用 Python?推荐 17 个在线的 Python 解释器!
作者:Al Sweigart 译者:豌豆花下猫@Python猫 英文:https://inventwithpython.com/blog/2022/10/30/17-online-python-ide ...
- 快速创建软件安装包-ClickOnce
大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne. 1. 什么是Click ...