https://docs.nextcloud.com/server/18/admin_manual/installation/server_tuning.html
开始
后台任务
NC的后台任务执行方式分为3中,AJAX
、Webcron
、Cron
默认是AJAX即在每次访问Nextcloud任意页面都会通过AJAX的方式发起定时任务的执行请求,这种方式如果没有自己的独立服务器或者VPS的话还是比较方便省心的
但官方推荐使用Cron
,和Nginx或Apache等WEB服务独立开来,互不影响
在Nextcloud设置 — 基本设置里,选择为 Cron
然后SSH到服务器,添加crontab定时任务
crontab -e
添加一行,并保存
*/5 * * * * sudo -u www php -f /www/wwwroot/file.bugxia.com/cron.php
内存缓存
通过使用内存作为数据缓存的话,可以提高NC的性能,以加快WEB端的访问速度,并且Nextcloud支持多个内存缓存后端,如APCu
、Redis
、Memcached
这里以APCu+Redis为例,并且官方推荐的缓存组合就是APCu和Redis,其他的缓存后端配置请参阅:Nextcloud内存缓存优化的官方文档
安装PHP的APCu+Redis扩展
配置
安装完毕后,打开/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',
开启HTTP2
宝塔面板安装的Nginx默认已支持http2,这里不再赘述
[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参数设置
开启PHP OPcache
通过安装OPcache扩展,也可以在一定程度上提升PHP的性能
实测
简单测试,可以用Chrome自带的控制台关闭Chrome缓存,连续打开几次同一个页面记录加载时间
优化前
平均加载时间都在5秒左右
优化后
平均加载时间缩短至在2秒左右
效果还是很明显的