Nextcloud - High Performance Backend für Dateien bei mehreren NC Instanzen

Einleitung

Mit dem Erscheinen von Nextcloud 21, wurde auch das High Performance Backend für Dateien eingeführt. In meinem ersten Tutorial darüber bin ich darauf eingegangen, wie es für eine Domain eingerichtet wird. Da es aber auch den Fall geben könnte, dass mehrere Nextcloud Instanzen auf einem Server betrieben werden, muss für jede weitere Nextcloud Instanz eine weiterer systemmd Unit erstellt werden.

Voraussetzungen:
- bestehende Nextcloud 21 (oder neuer) Instanz mit Redis
- Nginx als Webserver
- SSH Zugriff auf den Server
- Client Push App für jede weitere NC Instanz installiert => Nextcloud 21 - High Performance Backend für Dateien

Client Push auf Serverebene konfigurieren

Location Block hinzufügen

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

nginx
location /push/ {
    proxy_pass http://localhost:7867/;    # proxy_pass http://localhost:7868/; ... proxy_pass http://localhost:7869/; usw.
    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;
}

Haben Sie bereits mein erstes Tutorial erfolgreich für eine Domain angewendet, ist der Port 7867 bereits belegt. Damit weitere Instanzen, Client Push nutzen können, muss also ein anderer Port genutzt werden. Ein Beispiel hierfür ist dem Codeblock oben zu entnehmen.

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

Notify Push Setup

Ö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

Für jede weitere Nextcloud Instanz muss eine neue systemmd Unit erstellt werden. Damit es übersichtlicher wird, hängen wir den Domainnamen einfach am Ende an:

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

In dieser Datei fügen wir Folgendes hinzu:

Der Port muss exakt derselbe sein, wie im Location Block!

Aktivieren der systemmd Unit

systemmd Unit aktivieren mit folgendem Befehl

Bash
systemctl enable --now notify_push_domainname

Anschließend Notify_Push setup starten

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

Es ist wichtig den FQDN der Nextcloud Instanz mit dem Zusatz /push anzugeben.

Der Push Dienst kann mit folgendem Befehl geprüft werden, welchen Status er hat:

Code
service notify_push_domainname status

Ü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