首页 生活随笔

搭建在软路由上面的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,瞬间加载,美滋滋,感觉加载速度变快了一百倍。




文章评论