最近需要从国外某网站下载一个大的数据集,不知道为什么总是断流,而且不能续传,非常烦人。后来想了想,可以在国外的vps上搭一个私人云盘,然后先把数据下到vps上,再下到我的本机上,曲线救国。然后搜索了下发现Nextcloud+Aria2是比较好的一个选择,而且有docker,十分的方便,就简单部署了一下。
其中docker-compose.yml如下,其中的端口映射因为我这台vps上已经有了一个网站了,占用了80和443端口,所以修改了一下外部端口。
version: '3.5'
services:
nextcloud:
image: nextcloud:latest
volumes:
- ./data/nextcloud:/var/www/html:rw # moutn nextcloud files folder
- ./data:/data:rw # mount your personal data folder
restart: always
aria2:
image: wahyd4/aria2-ui:nextcloud
ports:
- "2480:80"
- "2443:443"
volumes:
- ./data:/data # mount your personal data folder
environment:
- DOMAIN=:80
links:
- nextcloud:file-manager
restart: always
写好之后我们直接docker-compose up -d
启动,访问http://ip:2480即可登录nextcloud,http://ip:2480/ui/ 则是Aria2NG的管理页面。
如果nextcloud启动报错,多半是文件夹权限问题,在 yml所在目录输入
chown www-data:www-data -R data/nextcloud
即可。
为了能让nextcloud和aria2共享存储文件夹,还需要在nextcloud的设置界面配置外部存储,把/data 配置为本地外部存储即可,
首先打开应用,启用 External Storage app。
然后在 设置->管理->外部存储 这里配置,目录名称随便写,增加存储选本地,配置写/data 可用于选择现在用的账户名,最后打上对勾即可,一切正常则整行前面会出现一个绿色的对号。
后来我又想用https域名访问,便用nginx配置了下反代,conf如下:
server {
listen 2096 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name sunxiaochuannmsl.xyz;
index index.html index.htm;
root /var/www/html;
location / {
proxy_pass http://127.0.0.1:2480;
}
ssl_certificate /etc/letsencrypt/live/<YOUR DOMAIN NAME>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<YOUR DOMAIN NAME>/privkey.pem;
}
设置完之后重启nginx就好了。
此时即可享受国外服务器的高速下载了。。。
文件会存储在nextcloud的相应文件夹里