标签 网盘 下的文章

Nextcloud旧版升级到新版有时候会报错webfinger和nodeinfo规则配置不太对。
网上很多教程都是错的,试了很久试出个对的,记录一下。
找到Nextcloud的配置目录:config/nginx/site-confs
vi打开nginx配置default,配置伪静态规则

location = /.well-known/carddav {
  return 301 https://网盘域名:443/remote.php/dav;
}
location = /.well-known/caldav {
  return 301 https://网盘域名:443/remote.php/dav;
}
location = /.well-known/host-meta {
  return 301 https://网盘域名:443/public.php?service=host-meta;
}
location = /.well-known/host-meta.json {
  return 301 https://网盘域名:443/public.php?service=host-meta-json;
}
    location = /.well-known/webfinger {
  return 301 https://网盘域名:443/index.php/.well-known/webfinger;
}
    location = /.well-known/nodeinfo {
  return 301 https://网盘域名:443/index.php/.well-known/nodeinfo;
}

保存重启nginx刷新页面即可
QQ截图20210818095709.jpg

搭建在软路由上面的Nextcloud是由一个PHP-NGINX-Docker和一个MYSQL-Docker组成的,
nextcloud.jpg
本来计划配置源站+OSS+CDN的模式准备给网盘提升一下速度,结果SSL证书我都做好了,发现阿里云只支持443端口的CDN源站,我北京联通443端口被封了,当然就没法用CDN了。
网盘刚搭建好的时候响应还比较快,然而随着文件量的增加,近期点击页面中的按钮会卡好几秒,感觉不像是CPU性能瓶颈(Intel(R) Celeron(R) CPU 3855U),直觉就是MySQL数据库反应慢,于是决定先优化一下本地数据库好了。
system.jpg
性能不够,Redis来凑,先开个Redis-Docker

docker run -d \
 --security-opt seccomp:unconfined \     #允许容器执行全部的系统的调用
 --restart=always \     #一直运行
 --name Redis \     #配置友好名称
 --network cloud \     #配置网络,与Nextcloud连到同一网段
 --ip 172.19.0.250 \     #指定Redis的IP地址
 -p 6379:6379 redis

关闭Nextcloud和MySQL的Docker
stop.jpg
找到Nextcloud的配置文件,加上Redis配置/www/nextcloud/config/config.php

  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
  'host' => '192.168.60.1',
  'port' => 6379,
  ),  

redisconf
大功告成,打开Nextcloud,已经非常明显的加载速度提升了。

next.jpg

Ps: 顺便改一下MySQL配置增加性能:

Docker console到MySQL,在my.cnf里加一条

innodb_flush_log_at_trx_commit = 0  #在提交事务时,InnoDB不会立即触发将缓存日志写到磁盘文件的操作,而是每秒触发一次缓存日志回写磁盘操作,并调用操作系统fsync刷新IO缓存(假装是懂了)。

docker console查下MySQL配置

SHOW VARIABLES like '%flush%'

mysql.jpg
再打开Nextcloud,瞬间加载,美滋滋,感觉加载速度变快了一百倍。