坚果云移动端购买起步一年,网页端可按月购买
国内支持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寻找编译生成的二进制文件,并用
如:
/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
坚果云我用过一段时间,感觉不咋行
我自己的VPS在国外,自行搭建的WebDAV速度太慢,只能将就用坚果云吧。哎,真香!