1. 介绍
现在服务器都是https协议了,而默认项安装的cloudreve没有开启https。这里介绍下如何配置https
开始之前,https的证书和签名申请这里就不做介绍了。大家都已经得到了cert文件和key文件的前提条件下。
(上篇公众号,介绍了如何配置和搭建我们自己的cloudreve服务器。这篇主要介绍https的配置)
2. 配置https
有两种方式可以实现1.采用cloudreve自己内置的web服务器配置的https签名证书开启https。
2.可以采用nginx反向代理配置https。
两种方法都可以,而大家常见的情况是配置nginx比较多。
2.1 nginx 配置https
基于nginx 1.22.0 版本进行的介绍。(其他版本大家结合实际情况,进行参考哦)
在/etc/nginx/conf.d
文件夹中创建一个cloudreve.conf
配置文件。
[root@izuf63tu3fn1swasqa62h8z ~]# vim /etc/nginx/conf.d/cloudreve.conf
然后在打开的文件中配置如下:
server {
listen 80;
server_tokens off;
server_name 你自己的访问域名地址;
# 重定向,将http请求改为https请求
return 301 https://$server_name$request_uri;
client_max_body_size 20000m;
}
server {
listen 443 ssl;
server_tokens off;
ssl_protocols tlsv1.2 tlsv1.3;
keepalive_timeout 300;
ssl_session_cache shared:ssl:10m;
ssl_session_timeout 10m;
ssl_certificate 你的ssl证书文件.pem;
ssl_certificate_key 你的ssl证书签名文件.key;
ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4:!dh:!dhe;
ssl_prefer_server_ciphers on;
server_name 写上你的域名地址;
location / {
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header host $http_host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header range $http_range;
proxy_set_header if-range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5212;
# 如果要使用本地存储策略就加上下面的,这代表最大单次上传文件尺寸
client_max_body_size 20000m;
}
}
然后执行ngingx -t
检测。没有问题后,就执行:nginx -s reload
配置重启就可以了。
2.2 cloudreve 配置https
我们如果没有安装nginx,那么可以直接使用cloudreve自带的web服务器并配置https启动。
首先找到你的cloudreve的 conf.ini文件。(ps:该文件会在我们安装解压的cloudreve目录下存在。)
找到该文件后,通过vim conf.ini
打开文件 。
只要在我们的conf.ini文件中添加:
[ssl]
listen = :443
certpath = 我们自己的证书.pem
keypath = 我们自己的证书签名.pem
两个配置项:一个是ssl证书,一个是私钥。
配置完毕之后,重启cloudreve就可以了。
3. cloudreve 配置文件
整个conf.ini全文档介绍:我们通常只有system标签的内容。下面的标签都没有,我们根据自己的实际需求进行主动添加就可以了
官方文件上的 注释不是通过//
符号,而是;
。我为了直观好看,给改为了//
大家自己写的时候,别把//
给复制进去了。
[system]
mode = master //运行模式
listen = :5212 //监听端口
debug = false // 是否开启 debug
sessionsecret = 23333 //session 密钥, 一般在首次启动时自动生成
hashidsalt = something really hard to guss //hash 加盐, 一般在首次启动时自动生成
[ssl] //ssl 相关配置
listen = :443 //ssl 监听端口
certpath = /root/my/zinyan/cert/fullchain.pem //证书路径 根据自己的实际路径进行修改
keypath = /root/my/zinyan/cert/privkey.pem //私钥路径 根据自己的实际路径进行修改
[unixsocket] //启用 unix socket 监听
listen = /run/cloudreve/cloudreve.sock //监听路径
[database]// 数据库相关,如果你只想使用内置的 sqlite 数据库,这一部分直接删去即可
type = mysql //数据库类型,目前支持 sqlite/mysql/mssql/postgres
port = 3306 //mysql 端口
user = root //数据库用户名
password = root //数据库访问密码
host = 127.0.0.1 //数据库地址,结合实际情况写哦
name = v3 //数据库名称
tableprefix = cd_ //数据表前缀
charset = utf8mb4 //字符集
dbfile = cloudreve.db //sqlite 数据库文件路径
[slave] // 从机模式下的配置
secret = 1234567891234567123456789123456712345678912345671234567891234567 //通信密钥
callbacktimeout = 20 //回调请求超时时间 (s)
signaturettl = 60 // 签名有效期
[cors] //跨域配置
alloworigins = *
allowmethods = options,get,post
allowheaders = *
allowcredentials = false
[redis] //redis 相关
server = 127.0.0.1:6379
password =
db = 0
[optionoverwrite] // 从机配置覆盖,我们可以在web端通过管理员配置,也可以在配置文件中手动配置
max_worker_num = 50 //可直接使用 `设置名称 = 值` 的格式覆盖,任务队列最多并行执行的任务数
max_parallel_transfer = 10 //任务队列中转任务传输时,最大并行协程数
chunk_retries = 10 //中转分片上传失败后重试的最大次数
thumb_width = 400 //缩略图宽度
thumb_height = 300 //缩略图高度
thumb_file_suffix = ._thumb //缩略图后缀名称
thumb_max_task_count = -1 // 最大并行执行缩略图生成的数量,填写 -1 时会根据 cpu 核心数自动决定
thumb_encode_method = jpg //缩略图编码 jpg格式
thumb_gc_after_gen = 0 //是否在缩略图生成完毕后立刻进行垃圾回收
thumb_encode_quality = 85 //编码质量,也就是压缩程度
上面的配置项都是可选项。想用哪个就添加哪个模块就可以了。
3.1 配置mysql
默认情况下cloudreve使用的是内置的sqlite数据库。
因为本身云盘使用也用不了太多数据库表进行记录,也就是记录一些配置,以及用户信息,管理员账户等等。云盘最大的文件系统并不是存储在数据库中的。
我们如果不想使用系统内置的sqlite而想使用mysql的话必须是mysql5.7版以上的才行。低版本不支持。
然后再conf.ini文件中添加:
[database]// 数据库相关,如果你只想使用内置的 sqlite 数据库,这一部分直接删去即可
type = mysql //数据库类型,目前支持 sqlite/mysql/mssql/postgres
port = 3306 //mysql 端口
user = root //数据库用户名
password = root //数据库访问密码
host = 127.0.0.1 //数据库地址,结合实际情况写哦
name = v3 //数据库名称
tableprefix = cd_ //数据表前缀
charset = utf8mb4 //字符集
添加完成后(请不要将注释内容也添加进去哦)重启cloudreve就可以了。
更换数据库配置后,cloudreve 会重新初始化数据库,原有的数据将会丢失。也就是账户等等数据会丢失哦。
建议第一次重启的时候,采用./cloudreve 进行启动。这样你能看到最新的管理员账户和密码。如果采用守护进程server的模式启动,你看不到日志。也就不知道账户密码哦。