使用官方docker镜像部署的nextcloud,性能表现并不出色,页面加载有明显延时,可以采取以下措施进行优化。

  • 使用cron去执行后台任务:在设置中将设置从ajax调整到cron,然后在宿主机建立crontab任务

    */15 * * * * docker exec --user www-data 35d355e94f2e php cron.php
  • 停用无用的apps,降低系统负载

    nextcloud提供了很多apps进行功能增强,根据实际需要进行禁用和卸载

  • 使用HTTPS加密,而非nextcloud提供的AES加密,降低传输前后的开销

  • 启用http2,提高加载速度。关于http2为什么能提高性能可以阅读这篇[文章](HTTP/2.0 相比1.0有哪些重大改进? - Leo Zhang的回答 - 知乎
    https://www.zhihu.com/question/34074946/answer/75364178)。启用的方法是修改nginx的nextcloud站点配置文件:`listen 443 ssl;->listen 443 ssl http2;`

  • 理论上来说,还可以使用redis或者memcahced来缓存资源文件或者采用CDN加速等等手段,本次我没有做这方面的尝试