Suivant le nombre d'utilisateurs, NextCloud peut être installé sur un matériel aussi léger qu'un Raspberry Pi, ou étendu à un cluster de serveurs Web, de serveurs de bases de données MySQL et Redis et de nœuds de stockage NFS.

Indépendamment du matériel que vous utilisez, voici une liste des meilleures pratiques à suivre permettant d'améliorer sensiblement les performances de votre instance NextCloud, en particulier l'interface Web, qui est généralement la première à montrer des signes de ralentissement.

Utilisez la dernière version d'Apache avec PHP 7

OwnCloud, le prédécesseur de NextCloud, a été principalement développé pour Apache. L'équipe NextCloud recommande donc à ce jour d'utiliser Apache 2.4+ pour une compatibilité optimale. De nombreux utilisateurs ont également beaucoup de succès avec la configuration de NextCloud à l'aide de Nginx, qui offre des performances élevées, en particulier lorsqu'il est utilisé avec un pool de travail PHP-FPM à déployer progressivement.

La version la plus ancienne de PHP sur laquelle les versions récentes de NextCloud seront exécutées est la version 5.6. Cependant, PHP 7.1 ou supérieur est fortement recommandé, car la branche 7.x de PHP est maintenue activement avec des mises à jour de sécurité et propose de nombreuses améliorations de performances qui rendront NextCloud plus réactif.

Vous avez la possibilité d'exécuter PHP en tant que module Apache (mod_php) ou PHP en tant que processus distinct (PHP-FPM, également appelé FastCGI). L'option la plus compatible offrant les meilleures performances sur une seule machine sera mod_php, mais PHP-FPM présente l'avantage d'être capable de fonctionner en mode réseau une fois que vous avez commencé à passer à plusieurs serveurs d'applications.

Activer PHP Opcache

L'un des caches de mémoire pris en charge par NextCloud est PHP OPcache. Pour obtenir de meilleurs résultats, activez cette option sur tous les serveurs NextCloud en ajoutant les paramètres suivants à votre fichier 10-opcache.ini (situé dans votre répertoire / etc / php , par exemple /etc/php/7.0/fpm/conf.d/10- opcache.ini )

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Activer le cache mémoire Redis

NextCloud vous permet également de spécifier un cache de verrouillage local et / ou de fichier dans son fichier config.php . PHP APCu et Redis sont deux magasins de valeurs clés pouvant être utilisés pour accélérer les performances d'une application PHP telle que NextCloud.

Si vous utilisez une petite instance de cloud (disons moins de 2 Go de RAM) ou un périphérique à ressources limitées tel que Raspberry Pi, Redis peut être utilisé à la fois pour la mise en cache locale et le verrouillage de fichier.

Pour installer Redis sur Debian/Ubuntu:

apt-get install redis-server php-redis -y

Ajoutez ensuite les lignes suivantes à config.php si vous utilisez un serveur Redis local .

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

Toute installation NextCloud peut tirer parti de ces améliorations simples des performances. En fait, NextCloud affichera un avertissement sur la page d’administration si vous avez configuré votre instance sans cache mémoire. Il est de votre intérêt de résoudre le problème avant de créer des connexions pour vos utilisateurs, de peur qu'ils ne rencontrent des délais d'expiration et des miniatures lentes dans l'interface utilisateur.