坚果云移动端购买起步一年,网页端可按月购买

国内支持WebDAV的网盘几乎只有坚果云(小众盘的稳定性需要考虑),而坚果云的付费套餐最低也要199元,否则每月只有1GB的上传流量,3G的下载流量。介于VPS的普及性,这时可以自己搭建WebDAV来获得更自由的体验。

一、自行搭建WebDAV的两条主要路径

1)使用NextCloud,Seafile等自带WebDAV的开源网盘;
2)使用Nginx模块实现。
本文只介绍第二种路径。关于第一种路径,可自行参考对应网盘的使用文档

二、搭建

1、方法一:直接编译

(1)安装编译依赖

apt install build-essential git libpcre3 libpcre3-dev zlib1g-dev libxslt-dev -y

(2)获取组件

cd /usr/src
wget https://nginx.org/download/nginx-1.19.1.tar.gz
wget -c https://github.com/arut/nginx-dav-ext-module/archive/v3.0.0.tar.gz -O nginx-dav-ext-module.tar.gz
# 如果你不使用域名或不使用HTTPS,则无需下载OpenSSL。
wget -c https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.tar.gz -O openssl.tar.gz
tar -zvxf *.tar.gz

(3)编译安装

cd nginx-1.19.1
./configure --with-openssl=../openssl --with-openssl-opt=enable-tls1_3 --with-http_ssl_module --with-http_v2_module --with-http_dav_module --add-module=../nginx-dav-ext-module`
# 如果你不使用域名或不使用HTTPS,请将上一句替换为 `./configure --with-http_v2_module --with-http_dav_module --add-module=../nginx-dav-ext-module`
make && make install

(4)校验
安装完成后,使用whereis nginx寻找编译生成的二进制文件,并用/nginx -V检验。
如:

/usr/local/sbin/nginx/nginx -V

完成后前往nginx配置目录新建一个站点,并以以下方式建立一个最简单的WebDAV服务器。(其他用法可参考Github)。

location / {
    root /data/www;

    dav_methods PUT DELETE MKCOL COPY MOVE;
    dav_ext_methods PROPFIND OPTIONS;
}

重载Nginx,WebDAV搭载完成。

2、方法二: 添加动态模块(以Ubuntu为例)

如果已经在机器上安装了Nginx,也可以通过动态模块的方式来实现。

(1)运行nginx -V

nginx version: nginx/1.19.1
built with OpenSSL 1.1.1c  28 May 2019
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/usr/src/nginx-1.19.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' ...

将--with-cc-opt=之后的内容(编译参数)全部复制下来。

(2)进入Nginx源码目录

cd nginx-1.19.1
./configure --add-dynamic-module=../nginx-dav-ext-module \

(3)粘贴编译参数

--with-cc-opt='-g -O2 -fdebug-prefix-map=/usr/src/nginx-1.19.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' ...
make modules

执行make modules后会在当前目录的objs文件夹下生成so二进制文件,
在Nginx主配置文件中引入,重启Nginx

load_module <yourPath>/...so

三、密码保护

你可以用密码保护你的WebDAV。

(1)安装apache utils:

apt install apache2-utils -y

(2)然后生成密码文件:

htpasswd /example/example.pwd admin

在location中加上:

    auth_basic "Restricted access";
    auth_basic_user_file /example/example.pwd;

这样,就拥有一个只属于自己,不限流量的WebDAV了。

测试环境:Ubuntu,LNMP


本文标签:笔记建站在线工具