Nextcloud - High Performance Backend für Dateien

Nextcloud GmbH

Einleitung

Das High Performance Backend für Dateien in Nextcloud ist eine optionale, binäre Komponente, die in Rust entwickelt wurde. Es ist in der Lage, eine direkte Verbindung mit Desktop- und Web-Clients aufrechtzuerhalten und den Clients Datei-Änderungen und Benachrichtigungen zu übermitteln. Dadurch entfällt die Notwendigkeit, den Server regelmäßig abzufragen, wodurch die 30-Sekunden-Polling-Periode auf 5 Minuten reduziert wird und somit eine 90%ige Reduzierung der Client-Server-Verbindungen für Änderungsbenachrichtigungen und der damit verbundenen Serverlast erreicht wird. Die direkte Verbindung bietet sofortige Benachrichtigungen über Datei-Änderungen sowie über Ereignisse wie einen eingehenden Anruf, einen Kommentar zu einer Datei, eine Erwähnung in einer Chat-Nachricht und mehr. Die Leistungsverbesserungen bei der Datenbanknutzung, der Dateiverarbeitung und der App-spezifischen Arbeit in Kombination mit dem hochleistungsfähigen Backend werden voraussichtlich zu einer bis zu 10-fachen Steigerung der Kapazität großer Nextcloud-Server führen.

Voraussetzungen:
- bestehende Nextcloud 21 (oder neuer) Instanz mit Redis
- Nginx als Webserver
- SSH Zugriff auf den Server

Im Verlauf von NC 21 (oder neuer) wird es Updates bezüglich der Client_Push App geben. Da nicht ausgeschlossen werden kann, dass hier auch notify_push aktualisiert wird, sollte nach jedem Update der App der Service neu gestartet werden.
service notify_push restart

Installation der App "Client Push"

Damit der Dienst eingerichtet werden kann, muss die App aus dem App-Store heruntergeladen und aktiviert werden. Ist das geschehen, sind Sie bereits auf Cloud ebene fertig.

Client Push auf Serverebene konfigurieren

Location Block hinzufügen

Melden Sie sich Webinterface auf Ihrem Server an und navigieren Sie hier zu der Domain, welche die Nextcloud Instanz beherbergt. In Ihrer vHost Konfiguration fügen Sie folgende Codezeilen hinzu:

nginx
location /push/ {
    proxy_pass http://localhost:7867/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Übernehmen Sie diese Einstellungen, der Webserver wird i.d.R. automatisch neu gestartet.

Notify Push Setup

Melden Sie sich via SSH an Ihrem Server an und starten Sie zeitgleich auch eine zweite Session. Mit folgendem Befehl wird der Installation Wizard gestartet:

Smarty
# CloudPanel
sudo -u clp php7.4 /home/cloudpanel/htdocs/domain.tld/occ notify_push:setup

In den meisten Fällen wird es hier zu einem Fehler kommen. Dennoch ist es wichtig, diesen Schritt einmal durchzuführen. Öffnen Sie die config.php der Nextcloud und ergänzen Sie Folgendes:

Code
  'trusted_proxies' => 
  array (
    0 => '127.0.0.1',
    1 => '::1',
    2 => 'SERVER IP',
  ),

Wichtig: trusted_proxies darf nur einmal definiert werden! Überprüfen Sie also Ihre komplette Konfiguration in der config.php

Systemmd Unit erstellen

Jetzt wiederholen Sie das Setup:

Bash
# CloudPanel
sudo -u clp php7.4 /home/cloudpanel/htdocs/domain.tld/occ notify_push:setup

Sollten nun alle Checks durchlaufen, wird Ihnen angezeigt, dass Sie eine systemmd Unit für das Backend, mit folgendem Inhalt, erzeugen sollen.

Drücken Sie jetzt nicht ENTER. Sondern wechseln Sie zu Ihrer zweiten SSH-Session. Erstellen Sie mit unten angegebenen Befehl die systemmd Unit und füllen Sie diese mit der Ausgabe, welche in der ersten SSH-Session angezeigt wird. Alternativ nutzen Sie obiges Muster

Bash
nano /etc/systemd/system/notify_push.service

Haben Sie die Datei erstellt, müssen Sie den Dienst nur noch starten:

Bash
systemctl enable --now notify_push

Ab hier wird die zweite SSH-Session nicht mehr benötigt. Wechseln Sie wieder in die erste SSH-Session und schließen Sie den Setup Wizard mit einem Enter ab. Wenn keine Fehlermeldung erscheinen sollte, ist die Installation sowie Konfiguration des High Performance Backend für Dateien abgeschlossen.

Quellen

Über den Autor

Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.

Foxly Team

Kommentare