Nextcloud打开缓慢\卡顿的一些优化

有些朋友问道我关于Nextcloud优化的问题,基本上就是新装NC后缓慢,打开网页一卡一卡的

##

这次就单独提出来,详细说说,本文环境为CentOS 7 + 宝塔,root用户权限,实际命令请根据实际情况修改

官方文档

NC的官方文档其实写的很详细了,本文也是基于这个文档来操作的,最新版(18)也新增了一些优化选项,建议阅读

https://docs.nextcloud.com/server/18/admin_manual/installation/server_tuning.html

开始

后台任务

NC的后台任务执行方式分为3中,AJAXWebcronCron

默认是AJAX即在每次访问Nextcloud任意页面都会通过AJAX的方式发起定时任务的执行请求,这种方式如果没有自己的独立服务器或者VPS的话还是比较方便省心的

但官方推荐使用Cron,和Nginx或Apache等WEB服务独立开来,互不影响

在Nextcloud设置 — 基本设置里,选择为 Cron

Nextcloud打开缓慢\卡顿的一些优化_第1张图片

然后SSH到服务器,添加crontab定时任务

crontab -e

添加一行,并保存

*/5 * * * * sudo -u www php -f /www/wwwroot/file.bugxia.com/cron.php

内存缓存

通过使用内存作为数据缓存的话,可以提高NC的性能,以加快WEB端的访问速度,并且Nextcloud支持多个内存缓存后端,如APCuRedisMemcached

这里以APCu+Redis为例,并且官方推荐的缓存组合就是APCu和Redis,其他的缓存后端配置请参阅:Nextcloud内存缓存优化的官方文档

安装PHP的APCu+Redis扩展

Nextcloud打开缓慢\卡顿的一些优化_第2张图片

配置

安装完毕后,打开/www/wwwroot/file.bugxia.com/config/config.php,在其尾部添加以下代码

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => [
	'host' => '127.0.0.1',
	'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis',

Nextcloud打开缓慢\卡顿的一些优化_第3张图片

开启HTTP2

宝塔面板安装的Nginx默认已支持http2,这里不再赘述

Nextcloud打开缓慢\卡顿的一些优化_第4张图片

[root@ali-sg ~]# nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.1.1b  26 Feb 2019
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/www/server/nginx --with-openssl=srclib/openssl --add-module=srclib/ngx_devel_kit --add-module=srclib/lua_nginx_module --add-module=srclib/ngx_cache_purge --add-module=srclib/nginx-sticky-module --add-module=srclib/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=srclib/pcre-8.42

优化PHP-FPM参数

这里也是需要根据自身服务器环境进行设置,不过基本的前提就是并发量足够大,内存就要足够大

宝塔的配置文件路径在 /www/server/php/73/etc/php-fpm.conf

官方给的参数是

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

宝塔面板上可以很方便的进行PHP-FPM参数设置

Nextcloud打开缓慢\卡顿的一些优化_第5张图片

开启PHP OPcache

通过安装OPcache扩展,也可以在一定程度上提升PHP的性能

Nextcloud打开缓慢\卡顿的一些优化_第6张图片

 

实测

简单测试,可以用Chrome自带的控制台关闭Chrome缓存,连续打开几次同一个页面记录加载时间

优化前

平均加载时间都在5秒左右

优化后

Nextcloud打开缓慢\卡顿的一些优化_第7张图片

平均加载时间缩短至在2秒左右

效果还是很明显的

你可能感兴趣的:(Linux,Nextcloud,Nextcloud,Linux,php)