Nextcloud optimieren
Die Performance und Sicherheit der Nextcloud Installation optimieren? Kein Problem, die folgenden Informationen helfen 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 sind hier zu finden.
Diese Anleitung bezieht sich darauf, dass Nextcloud in dem Verzeichnis nextcloud installiert ist. Wenn ein anderes Verzeichnis verwendet wird, dann muss dieses jeweils angepasst werden.
Trusted Domain
Beim Aufruf von Nexcloud erscheint die Meldung "Zugriff über eine nicht vertrauenswürdige Domain"?
Nach der Installation ist Nextcloud nur über die Domain aufrufbar, über die auch die Installation durchgeführt wurde. Genauso verhält es sich, wenn die Installation ohne www durchgeführt wurde und jetzt mit www aufrufen wird (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 im Homepage Center einrichtet werden.
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 --define apc.enable_cli=1
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/carddav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L] RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/noteinfo [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',
Hinweis: Ist das Memory Caching aktiviert, ist beim Ausführen von PHP über die Console der Zusatz "--define apc.enable_cli=1" notwendig.
Beispiel: php --define apc.enable_cli=1 occ maintenance:mode --on
Optimierung der Datenbank
Sie erhalten im Nextcloud die folgenden Meldungen:
"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. ..." und/oder "In der Datenbank fehlen einige Indizes. Aufgrund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. ..."
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 für db:convert-filecache-bigint starten php occ db:add-missing-indices #die Datenbankoptimierung für db:add-missing-indices starten php occ maintenance:mode --off #Wartungsmodus von Nextcloud deaktivieren
Die Datenbankoptimierung kann bei viel Inhalten auch etwas länger dauern.