因为某些原因,目前国内的很多网盘大多关闭了,为了能有一个私人用的文件服务器,提供稳定的文件下载服务,我利用了很早前折腾用的小内存VPS(只有可怜的64MB)结合网盘,搭建了一个私人用的下载服务器,记录下搭建步骤。
配置Nginx提供文件服务前端
这里的Nginx安装配置只针对小内存VPS(我的是64MB),配置不一定适用于高负载生产环境。
安装Nginx
由于我的VPS安装了CentOS 6最小化版本,所以根据官网说明,创建/etc/yum.repos.d/nginx.repo
文件,填入:
1 |
|
然后执行
1 |
|
根据提示安装完成,接着设置Nginx开机自动启动:
1 |
|
然后首次直接手工启动Nginx服务即可:
1 |
|
优化Nginx配置
对于小内存VPS,需要对部分参数做一些优化,提高下载并发数,编辑/etc/nginx/nginx.conf
,修改Nginx进程数
1 |
|
接着使用epoll,适用于Linux 内核2.6以上
1 |
|
然后在http中修改连接超时时间,以及设置sendfile提高文件传输性能
1 |
|
由于我只做下载服务器用,所以不用开启Gzip,降低内存占用
为下载服务开启http的80端口
1 |
|
配置davfs2挂载支持WebDAV的网盘服务
这里主要是为了使用box网盘提供的webdav接口,将网盘挂载成为Linux系统的一个分区,挂载完成后访问box中的文件就如同操作本地文件一样,接着将Nginx本地目录指向挂载网盘的目录,直接将网盘的空间利用成为本地文件,提供服务器文件下载的存储空间。
支持Webdav的网盘,目前我只了解到两家,国外的box以及国内的坚果云,如果你了解到其他服务商也提供webdav接口,欢迎评论留言提醒。
安装davfs2
1 |
|
安装完成后就已经可以通过以下命令手工挂载了:
1 |
|
不过为了服务器重启后自动挂载,还需要将账户信息写入配置文件中
配置davfs2
启用用户锁,编辑/etc/davfs2/davfs2.conf
,修改
1 |
|
接着编辑/etc/davfs2/secrets
,写入webdav的地址,邮箱和密码(这里的邮箱密码,指的是支持webdav网盘的账号和密码)
1 |
|
设置开机启动
开机启动可以在/etc/fstab中设置,这里用另一种方法实现同样的功能,编辑/etc/rc.local
,加入
1 |
|
保存后即可。
配置Hubic FUSE挂载Hubic网盘服务
这里主要是使用Hubic这个网盘服务,目前这个网盘可以正常访问,因此作为文件存储比较适合。
下载并编译Hubic FUSE
首先安装编译所需依赖包:
1 |
|
然后在这里下载源码并编译:
1 |
|
这样就已经安装完成了。
配置Hubic FUSE
接下来你需要进入hubic后台申请开发者应用密钥信息,点击这里进入,新增一个应用,回调地址填http://localhost/,然后记录下Client ID和Secret Client。
接着运行./hubic_token,根据提示填入刚刚获得的信息,完成后会显示如下信息:
1 |
|
将上面的信息复制后,粘贴到/root/.hubicfuse文件中
挂载及设置自启动
这时已经可以挂载hubic网盘了:
1 |
|
如果需要开机自启动,同样编辑/etc/rc.local
,加入
1 |
|
如果要弹出挂载盘,使用命令(需要安装fuse包):
1 |
|
这样,hubic网盘的挂载也已经完成了。
设置下载服务器网站路径
最后只要将Nginx的网站路径直接设置为/mnt/box
或者/mnt/hubic
,就可以使用网盘的空间提供下载服务了。
这里要注意一点,如果你使用CentOS7,默认开启SELINUX的状态下,可能会无法直接通过Nginx访问挂载的网盘中的文件,这时需要额外做下面的操作让SELINUX允许Nginx访问FUSE文件系统的文件,首先检查一下参数开启情况:
1 |
|
如果看到httpd_use_fusefs off
,那么用下面的命令开启:
1 |
|
为了服务更加稳定,建议在下载服务器前增加CDN,减轻服务器负担。