Nextcloud mit NGINX: Voraussetzungen, Installation und Einrichtung

Nextcloud mit einem NGINX-Server laufen zu lassen, ermöglicht einen ressourcenschonenden Betrieb der Cloud-Software und bietet flexible Einsatzmöglichkeiten. Die Installation setzt sowohl eine kompatible Systemumgebung als auch die passende Konfiguration voraus. Um Nextcloud nahtlos in die NGINX-Umgebung zu integrieren, sind außerdem einige spezifische Anpassungen erforderlich.

Nextcloud mit NGINX: Ein leistungsstarkes Duo für Ihre Cloud

NGINX ist eine auf dem Open-Source-Prinzip basierende Webserver-Software, die ebenso als Reverse-Proxy-Server, Load-Balancer und HTTP-Cache genutzt werden kann. Die Anwendung wurde größtenteils von dem russischen Softwareentwickler Igor Sysoev programmiert und unter der BSD-Lizenz (BSD ist eine Unix-Variante) veröffentlicht.

NGINX ist darauf ausgelegt, eine große Anzahl von Verbindungen gleichzeitig verarbeiten zu können. Um dies zu gewährleisten, setzt die Software auf eine ereignisgesteuerte, nicht blockierende Architektur. Anstatt wie traditionelle Webserver für jede Verbindung eigene Threads oder Prozesse zu verwenden, greift NGINX auf einen Master-Prozess und verschiedene Worker-Prozesse zurück. Ersterer verwaltet die Konfiguration, letztere bedienen eingehende Anfragen der Clients.

Nextcloud mit NGINX zu kombinieren, bringt verschiedene Vorteile mit sich, die insbesondere für performante Serverumgebungen relevant sind. Dazu zählen vor allem:

  • Effiziente Ressourcennutzung: NGINX ist dazu in der Lage, viele gleichzeitige Verbindungen ressourcenschonend zu verwalten.
  • Hohe Skalierbarkeit: NGINX ermöglicht eine flexible Lastverteilung und kann problemlos durch das Hinzufügen zusätzlicher Server erweitert werden.
  • Individuelle Anpassungsmöglichkeiten: Dank seiner modularen Struktur lässt sich NGINX an unterschiedlichste Anwendungsfälle anpassen.
  • Stabile Performance unter Last: Auch bei hoher Serverauslastung bleibt NGINX zuverlässig und sorgt für eine konstante Verfügbarkeit.
Hinweis

Nextcloud unterstützt offiziell nur Apache 2.x als Webserver. Für NGINX stellt Nextcloud daher auch keinen offiziellen Support bereit. Nextcloud mit NGINX zu betreiben, empfiehlt sich daher vorrangig für User mit Erfahrung im Bereich der Webserver-Konfigurationen.

Welche Voraussetzungen müssen für Nextcloud via NGINX erfüllt sein?

Die Grundvoraussetzung für Nextcloud unter NGINX ist ein Server, auf dem bereits Ubuntu, Debian oder ein anderes kompatibles System installiert wurde. Der Server sollte mindestens über vier Gigabyte RAM und zwei CPUs verfügen. Für umfangreichere Nextcloud-Instanzen mit vielen Nextcloud-Apps empfehlen sich Systeme mit mehr CPU-Kernen und Arbeitsspeicher. Es muss außerdem ausreichend Speicherplatz für Ihre Daten und Backups vorhanden sein.

Für die Installation benötigen Sie zudem eine kompatible Datenbank wie MySQL oder MariaDB sowie die Skriptsprache PHP (mindestens Version 8.1, empfohlen wird Version 8.3). In der Datenbank werden sowohl Nutzerinnen und Nutzer als auch Plugins, deren Daten und Datei-Metadaten gespeichert. PHP ist essenziell für die Verarbeitung und Ausführung der Nextcloud-Funktionen. Um Nextcloud installieren zu können, benötigen Sie darüber hinaus einen Account mit Admin-Rechten.

Managed Nextcloud
Ihr persönlicher Cloud-Speicher
  • Vollständige Datensouveränität
  • Kein Administrationsaufwand dank Managed-Betrieb
  • Flexibel um Apps und Online Office erweiterbar

Nextcloud mit NGINX als Webserver: Installation und Einrichtung

Vor der Installation von Nextcloud haben wir grundlegende Vorarbeiten bereits erledigt. Wir gehen in dieser Anleitung von einem Ubuntu-Server aus, auf dem das System und alle benötigten Abhängigkeiten im Vorfeld installiert wurden. Dazu zählen NGINX als Webserver, MySQL als Datenbank und PHP in der Version 8.3 mit allen erforderlichen Erweiterungen.

Wir haben außerdem Certbot installiert, um unkompliziert ein SSL-Zertifikat mit Let´s Encrypt einrichten zu können. Wir setzen zudem eine eigene Domain voraus, um Nextcloud über eine entsprechende URL anstelle einer IP-Adresse nutzen zu können.

Tipp

In weiteren Artikeln erfahren Sie, wie Sie Nextcloud unter Ubuntu 22.04 installieren oder Nextcloud auf Kubernetes einrichten. Außerdem bieten wir Ihnen eine ausführliche Anleitung für die Installation und Konfiguration von Nextcloud unter Debian 12.

Nextcloud herunterladen und entpacken

Zunächst erstellen Sie im Benutzerverzeichnis auf Ihrem Server einen Ordner namens „nextcloud“, in den Sie die Installationsdateien von Nextcloud herunterladen. Das kann manuell über das Nextcloud-Changelog erfolgen, funktioniert mithilfe des folgenden Curl-Befehls aber noch einfacher:

mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
bash
Hinweis

Sollten Sie eine andere Version installieren, müssen Sie darauf achten, die korrekte Download-URL der ZIP-Datei einzufügen.

Entpacken Sie die Datei, verschieben Sie den Ordner nach ./var/www (fungiert als Root-Verzeichnis) und legen Sie Dateiberechtigungen fest. Dafür nutzen Sie folgende Befehle:

unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
bash

Datenbank einrichten

Um die MySQL-Datenbank einzurichten, führen Sie den sudo-Befehl sudo mysql_secure_installation aus. Geben Sie „y“ ein, um Ihr Root-Passwort festzulegen (VALIDATE PASSWORD) und „2“ für ein starkes Passwort (STRONG), das Sie danach einrichten können. Drücken Sie „y”, um das Passwort zu bestätigen und im Anschluss erneut, um anonyme User zu entfernen, Remote-Logins zu verbieten, die Testdatenbank zu entfernen und Privilegien-Tabellen neu zu laden.

Danach gehen Sie folgendermaßen vor:

  1. Loggen Sie sich mit dem Befehl sudo mysql -u root -p als Root-User in die Datenbank ein.
  2. Legen Sie mit create database nextcloud; die Nextcloud-Datenbank an.
  3. Erstellen Sie mit dem Kommando create user 'nextcloud'@'localhost' identified by <new_password>; das Nextcloud-Nutzerkonto.
  4. Gewähren Sie dem erstellten Konto mit grant all privileges on nextcloud.* to 'nextcloud'@'localhost'; Datenbankberechtigungen.
  5. Aktualisieren Sie die Berechtigungen abschließend mit flush privileges; und verlassen die DB-Konsole mit dem Befehl exit.

Nachdem die Datenbank erfolgreich eingerichtet wurde, müssen die Zugangsdaten (DB_NAME, DB_USER, DB_PASSWORD) in die Nextcloud-Konfigurationsdatei eingetragen werden. Öffnen Sie hierfür die Datei ./var/www/nextcloud/config/config.php und fügen Sie die relevanten Einträge hinzu:

'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
txt
vServer / VPS
Vollständig virtualisiert mit Root-Zugriff
  • Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
  • Schneller NVMe-SSD-Speicher
  • Kostenlose Plesk Web Host Edition

Standardkonfiguration von NGINX deaktivieren

Bevor Sie Nextcloud in NGINX einbinden, sollten Sie sicherstellen, dass keine andere Konfigurationsdatei die Nextcloud-Installation überschreibt. Standardmäßig könnte sich noch eine default-Konfiguration in ./etc/nginx/sites-enabled/ befinden, die verhindert, dass Nextcloud korrekt geladen wird. Diese sollte mit folgendem Kommando entfernt werden:

sudo rm /etc/nginx/sites-enabled/default
bash

Anschließend stellen Sie mit folgendem Kommando sicher, dass die neue Konfiguration für Nextcloud aktiv ist:

sudo ln -s /etc/nginx/sites-available/beispieldomain.de /etc/nginx/sites-enabled/
bash

NGINX-Server konfigurieren

Um NGINX als Webserver zu konfigurieren, sollte bereits eine Domain eingerichtet und mit der Server-IP verknüpft sein. Achten Sie in diesem Zusammenhang auch auf eine korrekte DNS-Konfiguration. Erstellen Sie die NGINX-Config-Datei im Verzeichnis sites-available mithilfe des Linux-sudo-Befehls sudo touch /etc/nginx/sites-available/beispieldomain.de (wir haben als URL beispieldomain.de verwendet).

Öffnen Sie die Konfigurationsdatei in einem Texteditor wie Vim mit sudo vim /etc/nginx/sites-available/beispieldomain.de und fügen Sie den Code-Block des Abschnitts „Nextcloud in a subdir of the NGINX webroots” der Nextcloud-Webseite zur NGINX-Konfiguration in ./etc/nginx/sites-available/beispieldomain.de ein.

Da das HTTPS-Zertifikat mit Certbot hinzugefügt wird, sollten Sie zudem alle SSL-bezogenen Zeilen aus der NGINX-Konfigurationsdatei entfernen. Certbot übernimmt die automatische Konfiguration, sodass eine detaillierte manuelle Einrichtung entfällt.

SSL-Zertifikat mit Certbot einrichten

Damit Nextcloud über eine sichere HTTPS-Verbindung läuft, ist es notwendig, ein SSL-Zertifikat – in diesem Fall von Let’s Encrypt – einzurichten. Zunächst wird die Firewall eingestellt, damit HTTPS und SSH-Verbindungen zulässig sind. Nutzen Sie dafür folgenden sudo-Befehl:

sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
bash

Als Nächstes aktivieren Sie die Firewall mit sudo ufw enable und überprüfen mit sudo ufw status, ob die Verbindungen nun zugelassen sind. Anschließend können Sie über Certbot das SSL-Zertifikat erstellen:

sudo certbot --nginx -d beispieldomain.de
bash

Geben Sie Ihre E-Mail-Adresse für Zertifikatserneuerungen an, stimmen Sie den Nutzungsbedingungen zu und wählen Sie im Anschluss Option 2, um alle HTTP-Anfragen automatisch auf HTTPS umzuleiten. Die Zertifikatsdateien finden Sie im Verzeichnis .etc/letsencrypt/live/beispieldomain.de/. Die Datei fullchain.pem beinhaltet das SSL-Zertifikat, die Datei privkey.pem enthält den privaten Schlüssel. Diese müssen in die NGINX-Konfigurationsdatei eingetragen werden:

ssl_certificate /etc/letsencrypt/live/beispieldomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/beispieldomain.de/privkey.pem;
txt

Da Certbot die Konfigurationsdatei angepasst hat, ist es erforderlich, das Attribut ssl zwischen 443 und http2 wieder hinzuzufügen. Der entsprechende Block sollte dann wie folgt aussehen:

server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name beispieldomain.de;
txt

Dienste neu starten und Nextcloud aufrufen

Damit die Änderungen wirksam werden, ist es notwendig, die PHP-FPM- und NGINX-Dienste neu zu laden:

sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
bash

Anschließend rufen Sie über den Browser Ihre Domain – in unserem Fall beispieldomain.de – auf, wo Ihnen die Nextcloud-Startseite angezeigt wird, wenn alles korrekt eingerichtet wurde.

Hinweis

Falls Nextcloud nicht laufen sollte, kann es daran liegen, dass Ihre Domain noch nicht in der config.php als Nextcloud Trusted Domain eingetragen wurde. Holen Sie diesen Schritt an dieser Stelle nach, um das Problem zu beheben.

War dieser Artikel hilfreich?
Page top