Nextcloud optimieren

Sie möchten die Performance und Sicherheit Ihrer Nextcloud Installation optimieren? Die folgenden Informationen helfen Ihnen dabei.

Der Artikel behandelt die folgenden Punkte:

  • Trusted Domain
  • Cronjob
  • Caldav/Carddav iOS/MacOS
  • Strict-Transport-Security
  • Memory Caching
  • Optimierung der Datenbank

Informationen zur Installation von Nextcloud erhalten Sie hier.

Diese Anleitung bezieht sich darauf, dass Sie Nextcloud in dem Verzeichnis nextcloud installiert haben. Wenn Sie ein anderes Verzeichnis verwenden, dann muss dieses jeweils angepasst werden.

Trusted Domain

Sie erhalten beim Aufruf von Nexcloud die Meldung "Zugriff über eine nicht vertrauenswürdige Domain"?


Nach der Installation ist Nextcloud nur über die Domain aufrufbar, über die Sie die Installation auch durchgeführt haben. Genauso verhält es sich, wenn Sie die Installation ohne www durchgeführt haben und jetzt mit www aufrufen (oder umgekehrt). Um Ihr Nextcloud über eine weitere Domain aufzurufen, müssen Sie diese einmal als Trusted Domain in der public_html/nextcloud/config/config.php hinzufügen.

 

Hier ein Beispiel einer Konfiguration, für zwei Domainnamen, jeweils mit und ohne www:

'trusted_domains' => 
array ( 
0 => 'domain-a.de', 
1 => 'www.domain-a.de', 
2 => 'domain-b.de', 
3 => 'www.domain-b.de', 
),

Cronjob

Nextcloud muss regelmäßig im Hintergrund Aufgaben erledigen. In der Standardeinstellung (AJAX) passiert dies immer dann, wenn Sie Ihr Nextcloud selbst nutzen. Bei größeren Nextcloud Installationen, kann es aus Performance Gründen besser sein, dies regelmäßig unabhängig von der Nutzung zu machen. Dies kann mit der Einrichtung eines Cronjobs erledigt werden. Cronjobs können Sie bei der Homepage M / L / Advanced / Professional im Homepage-Center einrichten.

Gehen Sie zunächst in der Nexcloud Installation auf "Einstellungen" (rechts oben) / "Grundeinstellungen" (links) und aktivieren bei den Hintergrund-Aufgaben den Punkt "Cron".



Im Homepage Center können Sie den Cronjob unter "Einrichten & Verwalten" / "Cronjob" erstellen. Tragen Sie dazu einen Cronjob-Namen ein und hinterlegen in das Feld Cronjob-Skript den folgenden Eintrag:

 /usr/bin/php -f /home/www/public_html/nextcloud/cron.php

Anschließend hinterlegen Sie eine Ausführungssequenz von 15 Minuten und aktivieren den Punkt "Cronjob aktivieren" bevor Sie speichern.

Um zu prüfen ob alles funktioniert, können Sie in Nextcloud bei den Hintergrund-Aufgaben, den Wert "Letzte Aufgabe ausgeführt Vor X Minuten" kontrollieren. Dieser sollte sich jetzt  alle 15 Minuten ändern.

Caldav/Carddav mit iOS/MacOS

Sie erhalten in Ihrem Nexcloud die Meldung: Ihr Webserver ist nicht richtig konfiguriert um "/.well-known/caldav" aufzulösen. / Ihr Webserver ist nicht richtig konfiguriert um "/.well-known/carddav" aufzulösen?

Dann haben Sie Nextcloud in einem Unterverzeichnis installiert. Dies führt dazu, das der Dienst Caldav (Kalender) und Carddav (Adressbuch) nicht direkt unter Ihrer Domain, sondern unter Ihrer Domain/nextcloud erreichbar ist. Dies ist grundsätzlich erstmal kein Problem, da man mit vielen Caldav/Carddav Clients die URL mit Verzeichnis einrichten kann. 

Möchte man unter iOS / MacOS ein Kalender / Adressbuch mit Nextcloud einrichten, dann kann man dort aber nur eine Domain ohne Verzeichnis hinterlegen. Damit Sie die Nexcloud Installation auch in einem Verzeichnis nutzen können, sind lediglich folgenden Rewrite Regeln in der httpd.conf  notwendig:

Hinweis: Sie sollten diese Einträge nur setzen wenn Sie Caldav/Carddav auch mit einem iOS / MacOS nutzen möchten.

<Directory /home/www/public_html>
RewriteEngine on 
RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L] 
RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L] 
RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L] 
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L] 
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</Directory>

Strict-Transport-Security

Sie erhalten in Ihrem Nextcloud die folgende Sicherheitsmeldung: Der "Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens "15552000“ Sekunden eingestellt. 

Um die Sicherheit Ihrer Nextcloud Installation weiter zu erhöhen, sollten Sie den folgenden Eintrag in Ihrer httpd.conf hinterlegen.

<Location /nextcloud>
Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains;"
</Location>

Memory Caching

In der Nextcloud erhalten Sie den Hinweis: "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden."

Gut zu Wissen:  Memory Caching kann dabei helfen die Performance von Nextcloud zu verbessern. Inhalte die bereits aufgerufen wurden, können so schneller erneut ausgeliefert werden.

Um das Memory Caching im Nexcloud zu aktivieren, können Sie den folgenden Eintrag in der public_html/nextcloud/config/config.php in der vorletzen Zeile hinzufügen:

'memcache.local' => '\\OC\\Memcache\\APCu',

Optimierung der Datenbank

Sie erhalten im Nextcloud die folgenden Fehlermeldung: "Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert. ..." 

Die Optimierung der Datenbank kann über den SSH-Zugang mit Putty durchgeführt werden. Hier die Befehle die Sie dazu in der Konsole ausführen müssen:

cd /home/www/public_html/nextcloud      #in das Nextcloud Verzeichnis wechseln
php occ maintenance:mode --on              #Wartungsmodus von Nextcloud aktivieren  
php occ db:convert-filecache-bigint          #die Datenbankoptimierung starten (dies kann bei viel Inhalten auch etwas dauern)
php occ maintenance:mode --off              #Wartungsmodus von Nextcloud deaktivieren