Neue Nextcloud, neue Probleme

Hallo zusammen.

Ich habe mich die letzten Tage mit Reverse-Proxy auseinandergesetzt. Nun habe ich einen Reverse-Proxy über Nginx hinbekommen. Des weiteren habe ich mir auch eine neue Nextcloud installiert. Wenn ich die Nextcloud aufrufe und in der Übersicht gucke, dann sind dort die üblichen Fehlermeldungen, wie:

* Der HTTP-Header “Strict-Transport-Security” ist nicht auf mindestens 15552000 Sekunden 
eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den 
[Sicherheitshinweisen](https://docs.nextcloud.com/server/20/go.php?to=admin-security) 
erläutert ist.

* Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein 
Memory-Cache konfiguriert werden. Weitere Informationen findest Du in der [Dokumentation] 
(https://docs.nextcloud.com/server/20/go.php?to=admin-performance).

Wenn ich die Fehler versuche zu beheben, dann schmiert mir die Nextcloud permanent ab. Das heißt, sie ist dann nicht mehr erreichbar. Mache ich die Einstellungen rückgängig, kommt man wieder drauf.

Ich habe auch die Fehler mit dem caldav & carddav. Dazu habe ich hier im Forum auch schon geguckt. Nur werde ich daraus nicht schlau, wo ich welchen Eintrag hinschreiben muss.

Mein System sieht folgendermaßen aus.

Proxmox als Hauptsystem
1x Ubuntu Server 20.04 mit Nextcloud (Hauptcloud)
1x Ubuntu Server 20.04 mit Nextcloud (Testcloud)
1x Ubuntu Server 20.04 mit Reverse-Proxy (zum Ansprechen der beiden Clouds und des Webservers)
1x Ubuntu Server 20.04 als reiner Webserver für Testwebseiten

Liegt das mit den Fehlern mit dem Reverse-Proxy zusammen? So langsam verstehe ich hier gar nicht mehr. Das was ich im Internet nach meiner Suche bei Google gefunden habe, sah für mich alles Plausibel aus. Nur wenn das was ich so wie im Internet beschrieben mache nicht funktioniert, dann verliert sich langsam die Lust daran.

Danke schonmal für die Tipps und Ratschläge.

Ich würde mal sagen. Jein! :wink:

Der erste “Fehler” betreffend HTTP-Header, müsstest du in der Reverse Proxy Konfiguration beheben und der zweite auf dem Nextcloud Server.

Ich würde folgendermassen vorgehen:

Setzte die Nextcloud ohne Reverse Proxy und ohne HTTPS auf und konfiguriere sie soweit, dass alles inkl. Memory-Cache aus dem lokalen Netz erstmal funktioniert…

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html

Wenn alles läuft, setzt du den Reverse Proxy auf und machst die nötigen Änderung betreffend trusted_proxies in der config.php und die nötigen Anpassungen für SSL, HSTS und caldav & carddav in der Webserverkonfiguration des Reverse-Proxy.

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html

Wenn es danach immer noch nicht funktioniert oder du immer noch Fehlermeldungen erhälst, poste bitte deine Webserver-Configs und die config.php hier. Ansonsten wird es schwer zu helfen. Ich muss dazu noch sagen, dass ich mich mit nginx nicht sehr gut auskenne, aber es werden dir andere hier sicher helfen können, wenn du deine Configs postest.

Guten Morgen bb77.

Erst mal danke für deine Antwort. Dann werde ich das mal umsetzen, was du geschrieben hast. Ein kleines Problem habe ich noch. Und zwar wenn ich die Nextcloud im Browser über die IP versuche anzusprechen, dann bekomme ich nur die Apache Webserver Seite. Die Cloud liegt in /var/www/nextcloud. Die Apache Webserver Seite liegt in /var/www/html Welchen Trick gibt es da, das ich die über die interne IP erreichen kann? Ich habe schon versucht, mich per FTP (mit WinScp) auf die Nextcloud zu verbinden. Ich kann auch in den Verzeichnissen rumspringen. Nur kann ich nichts ändern oder verschieben. Das liegt aber an den Berechtigungen, wie ich das richtig gelesen habe.

Ich weiß, Fragen über Fragen. Ich bin, was Linux angeht, echt noch blutiger Anfänger. Ich möchte allerdings auch verstehen, wie die Sachen alle zusammenhängen.

Das kommt darauf an wie du deine Nextcloud aufgesetzt hast bzw. wie der Apache konfiguriert ist. Hast du eine bestimmte Anleitung benutzt?

Ich tippe mal, dass du im Virtualhost für die Nextcloud deinen Domainnamen angegeben hast und gleichzeitig noch der Default Virtualhost von Apache aktiv ist. Als erstes würde ich mal den Default Virtualhost deaktivieren: a2dissite 000-default.conf und dann im Virtualhost der Nextcloud bei ServerName den Domainnamen durch die IP-Adresse ersetzten. Zusätzlich muss in der config.php unter trusted_proxies ebenfalls die IP-Adresse eingetragen sein. Dann sollte der Zugriff via IP-Adresse eigentlich funktionieren.

Ich habe die Anleitung von apfelcast von YouTube genommen. Wenn Du eine andere hast, dann würde ich die mal ausprobieren. Die von apfelcast ist recht einfach und verständlich.

Habe ich vermutet. :wink: Die ist ok, aber halt darauf ausgelegt, dass du einen Domainnamen verwendest und SSL direkt auf dem Apache machst. Weil du den Domainnamen und SSL aber auf dem Reverse Proxy verwenden willst und nicht auf dem dem Apache des Nextcloud-Servers, muss der Apache auf dem Nextcloud-Server via IP-Adresse erreichbar sein. Und damit das funktioniert müsstest du die Änderunegen machen, die ich beschrieben habe. Plus ist es immer eine gute Idee den Default Virtualhost zu deaktivieren, wenn er nicht gebraucht wird.

Das mit dem Domainnamen ist ja auch richtig. Ich habe ja die Hauptdomain nc-hauke und darunter sind 3 Subdomains, worüber die Nextcloud Instanzen angesprochen werden sollen. Die sollen nachher auch im Netz erreichbar sein.

Jup aber via dem Reverse-Proxy und nicht direkt auf dem Apache des Nextcloud-Servers.
und auch die SSL-Konfiguration muss dort gemacht werden.

Im Apache Virtualhost des Nextcloud Servers trägst du nur die IP des Servers unter ServerName ein und du fügst sie auch unter trusted_proxies in der config.php der Nextcloud hinzu. Wenn du dann den Reverse-Proxy aufgesetzt hast, fügst du zusätzlich den Domainnamen und evtl. noch die IP des Reverse-Proxis zu den trusted_proxies hinzu. Die IP des Nextcloud-Servers kannst du dann theoretisch in der config.php wieder entfernen, wenn du ihn nicht mehr direkt über die interne IP erreichen willst/musst. Im Apache Virtualhost, bleibt sie aber drinn bzw. muss der Domainname nicht drinnstehen.

Ok, erstmal danke für die Tipps. Dann werde ich mich mal dran setzen und das mal umsetzen, was du geschrieben hast. Welche Anleitung würdest du denn empfehlen, um eine Nextcloud aufzusetzen?

Nochmal zu der FTP Geschichte. wie muss ich die Berechtigungen setzt, damit ich in dem /var/www/html Verzeichnis arbeiten kann? Der Webserver soll nachher auch testweisen im Internet Angesprochen werden.

Ob du den Server via FTP erreichst oder nicht, hat mit der Konfiguration des Webservers und dem Reverse-Proxy nichts zu tun. FTP ist ein eigenes Protokoll und läuft komplett unabhängig. Ich würde dir aber nicht emfehlen FTP (ich nehme an du meinst SFTP bzw SCP via SSH) direkt aus dem Internet erreichbar zu machen. Wenn du es trotzdem tust, empfehle ich dir dringend SSH-Keys zu verwenden und die Passwortauthentifizierung für SSH zu deaktivieren.

Ja, SFTP war ja auch gemeint. Das soll auch nur intern gemacht werden. Also um die fertige Webseite auf den Webserver zu bekommen. Aber da gucke ich sonst nochmal anderer Stelle. Jetzt wird erstmal das mit der Nextcloud umgesetzt.

1 Like

Damit du via SFTP direkt ins Webroot bzw nach /var/www/… schreiben kannst, muss der Benutzer, der sich via SFTP am Server anmeldet, die nötigen Berechtigunggen haben. Am einfachsten geht, das, wenn du diesen Benutzer der Gruppe www-data hinzufügst. Ich würde mich da aber erst schlau machen, was die “Best-Practises” sind. Ich bin da kein Spezialist.

Die Frage ist auch, ob man das überhaupt braucht. Das kannst aber nur du beantworten… :wink: Ich kann mir persönlich eigentlich nur einen Usecase vorstellen, bei dem das nötig wäre und zwar dann, wenn du irgendeine Form von statischer Website hosten willst, bei der du regelmässig die Dateien via SFTP aktualisieren musst. Für alles andere, wie z.B. um irgendwelche WebApps oder CMS-Systeme zu installieren, kannst du das ZIP oder in welcher Form auch immer du die Anwendung heruntergeladen hast, auch einfach in dein Homeverzeichnis hochladen, oder es auf der Kommandozeile deines Servers via wget, git usw… direkt auf deinen Server herunterladen und dann von dort weitermachen…

Gute Idee. Ich wünsche gutes Gelingen :slight_smile: