Hello,大家好!今天终于蹲到了心心念念的华为云耀云服务器,那就简单写一篇博文吧,教大家如何使用 华为云耀云服务器 + Cloudreve + OneDrive 快速搭建低成本公私兼备的网盘系统。
一、服务器的配置
拿到服务器,首先我们将其重装成自己习惯使用的系统。这里我选择了Fedora 30,对于喜欢yum包管理又想拥有较新软件源的童鞋来说,是个很棒的选择。
然后,我们登陆服务器,对系统进行一些优化设置。这里推荐使用FinalShell软件连接服务器,跨平台、自带资源监视功能和文件管理功能,配上比较舒适的UI,个人感觉是非常好用的。当然Xshell、SecureCRT等也是不错的选择。
我对系统对配置主要有以下三点:
- 对软件包进行更新(dnf update);
- 更改网络配置,开启bbr以提高吞吐量和减少 TCP 连接的延迟;
- 配置编译环境及安装依赖,用于编译Tengine。
二、Cloudreve的安装与配置
Cloudreve是一个多用户全功能的网盘系统,其开发者为原树洞外链的开发者Aaron。
Cloudreve的项目主页为https://cloudreve.org,GitHub项目地址为https://github.com/cloudreve/Cloudreve
近日,Cloudreve更新到了3.0RC1版本,3.0改用GoLang开发,并采用 All-In-One 打包,开箱即用,可直接使用SQLite数据库,也可自行配置MySQL/MariaDB。
我们进入Releases,下载3.0RC1已经编译好的二进制文件
https://github.com/cloudreve/Cloudreve/releases
我们这里选择cloudreve_3.0.0-rc1_linux_amd64.tar.gz
mkdir /home/cloudreve #创建运行目录
cd /home/cloudreve
wget https://github.com/cloudreve/Cloudreve/releases/download/3.0.0-rc1/cloudreve_3.0.0-rc1_linux_amd64.tar.gz
tar zxvf cloudreve_3.0.0-rc1_linux_amd64.tar.gz #解压
chmod +x cloudreve #赋予可执行权限
下面,我们依据配置文档(https://docs.cloudreve.org/getting-started/config),修改conf.ini
[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5000
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss
; 数据库相关,如果你只想使用内置的 SQLite数据库,这一部分直接删去即可
[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql
; 用户名
User = root
; 密码
Password = root
; 数据库地址
Host = 127.0.0.1
; 数据库名称
Name = v3
; 数据表前缀
TablePrefix = cd
; 从机模式下的配置
[Slave]
; 通信密钥
Secret = 1234567891234567123456789123456712345678912345671234567891234567
; 回调请求超时时间 (s)
CallbackTimeout = 20
; 签名有效期
SignatureTTL = 60
; 跨域配置
[CORS]
AllowOrigins = *
AllowMethods = OPTIONS,GET,POST
AllowHeaders = *
AllowCredentials = false
; Redis 相关
[Redis]
Server = 127.0.0.1:6379
Password =
DB = 0
; 从机模式缩略图
[Thumbnail]
MaxWidth = 400
MaxHeight = 300
FileSuffix = ._thumb
至此,Cloudreve已配置完毕,可以运行啦
./cloudreve
如果你想让Cloudreve在后台运行,可以使用screen将会话保存
dnf install -y screen
screen -S cloudreve #可以自定义名称
./cloudreve
如果需要还原对话,可以输入
screen -r cloudreve #和上一步的会话名称相同
敲重点,首次运行后,应当记录下log中提示的管理员账号和密码哦!
三、Tengine的编译安装与配置
这里我们需要一个HTTP Server对Cloudreve进行反代,并支持HTTPS等更多功能。由于个人喜好原因,这里使用了由淘宝fork Nginx后开发的Tengine,其在并发性能方面更胜一筹。
新建一个vhost配置,并填入反代、HTTPS等配置
server {
listen 80;
listen 443 ssl http2;
server_name example.org;
ssl_certificate /path/to/ssl.crt;
ssl_certificate_key /path/to/ssl.key;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
keepalive_timeout 75s;
keepalive_requests 100;
access_log /path/to/access.log;
error_log /path/to/error.log;
location / {
proxy_pass http://127.0.0.1:5212; #注意这里的端口为Cloudreve监听端口
proxy_redirect off;
proxy_set_header Accept-Encoding '';
}
}
这样,反代就配置好了,我们将自己的域名做好DNS记录,并且设置好云服务器的安全组,放通相应端口,就可以通过域名访问网站啦!
四、配置Cloudreve储存策略及OneDrive API
我们输入之前记录下的管理员邮箱和密码,登录,进入管理面板,添加新的储存策略。
这里,我们选择OneDrive,进入添加向导。
Cloudreve 3.0同时支持OneDrive国际版和国内版(世纪互联运营)。由于我的账号为国内版,所以我需要登录https://portal.azure.cn/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview,进入Azure Active Directory管理面板。
进入左侧 应用注册 菜单,并点击 新注册 按钮。
填写应用注册表单。其中,名称可任取;受支持的帐户类型 选择为任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户;重定向 URI (可选)请选择Web,并填写https://example.org/api/v3/callback/onedrive/auth; 其他保持默认即可。
然后,我们进入应用管理页面左侧的证书和密码菜单,点击新建客户端密码按钮,截止期限选择为从不。将获取的客户端密码和刚刚创建的应用程序(客户端) ID填入Cloudreve设置页,并保存。
随后,Cloudreve会重定向到Azure应用授权页面,我们确定登录后,Azure会跳转回Cloudreve,API授权完成。至此,Cloudreve储存策略配置已经完成啦。
接下来我们可以根据个人需要,对Cloudreve进行进一步的设置,离线下载、文件预览、压缩包解压,这些都是不错的功能哦!
五、小结
云服务器用处多多,选择Cloudreve写这篇博文,是考虑到了包括我在内的广大小伙伴们对个人网盘的需要,从此就可以摆脱某某网盘对限制啦!博文内容仅供参考,如有疏漏请不吝赐教。最后,感谢牛客网和华为云提供的机会,希望能与各路大神进一步交流哇!
有疑问加站长微信联系(非本文作者)