Nextcloud und Performance

Hallo,

ich habe Nextcloud (V23) installiert um mich in erster Linie von OneDrive zu lösen. Installiert ist Nextcloud bei mir auf Proxmox unter UBUNTU 21 (2 Cores, 16GB RAM) + Fail2Ban - alles wunderbar bis auf die Performance:

Nach Eingabe meiner DYNDNS vergehen ca. 15 Sekunden bis der Anmeldebildschirm kommt.

Nach Eingabe der Login-Daten vergehen wieder ca. 15-20 Sekunden, bis ich in Nextcloud eingeloggt bin.

Der Zugriff über WEBDAV ist eine Katastrophe. Das Password wird in WIN10 immer wieder vergessen und muss neu eingegeben werden. Und wenn ich zb was aus Word in mit SPEICHERN UNTER in die Nextcloud speichern will, vergehen wieder ca. 20 Sekunden bis der NC-Ordner erscheint.

Das Problem hierbei ist: OneDrive ist so extrem schnell im Vergleich und bei der Performance von Nextcloud ist es leider keine Alternative. Nächstes Problem: Es gibt soviele Tips im Internet oder hier im Forum, dass man gar nicht weiß, was man alles ausprobieren kann. Das meiste was ich ausprobiert habe führt dann zu:

Internal Server Error

“The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the webserver log.”

Frage: Wie kann ich am besten schrittweise vorgehen um die ganzen Probleme zu lösen?

Danke schonmal
TuG

Hallo @TheUnexpectedGuest

Das könnte auch auf ein Netzwerkproblem hindeuten. Viele Consumer Router sind nicht sehr performant, wenn sie NAT-Loopback / NAT Reflection machen müssen. Abhilfe könnte ein lokaler DNS-server schaffen, so dass deine DYNDNS-Adresse im LAN direkt auf deine interne IP auflöst und der Traffic nicht über das NAT des Routers läuft.

Falls du das auschliessen kannst, bräuchten wir mehr Details, wie genau du Nextcloud installierst hast, um helfen zu können. Was viel zur Performance beiträgt ist Caching einzurichten (APCu/Redis), und PHP-FPM/FastCGI, anstatt PHP-prefork zu nutzen. Ich habe meine Caching, PHP und Datenbankkonfiguration, hauptsächlich nach den Tutorials von Carsten Rieger “getunt” und habe keine solchen Performance Probleme. (Proxmox, Ubuntu 20.04 VM, 4 Cores, 8 GB RAM). Hier die Anleitung für nginx und hier für Apache

Sehr warscheinlich verursacht aus einer Kombination aus der WebDAV Implementierung in Windows, plus allfälligen Problemen, die ich oben schon angesprochen habe.

1 Like

Vielen Dank.

Ich bin seinerzeit der dem Video von Apfelcast gefolgt und sehe aber, dass die Installation/Optimierung von Rieger um einiges umfangreicher ist. Ich hab einige Anpassungen probiert, aber wenn ich dann meine Seite aufrufe dann kommt:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the webserver log.

Vermutlich muss ich mich doch an eine Neuinstallation wagen

Das heisst einfach, dass du in deinen Logs nachschauen sollst. Irgendetwas klappt nicht, ein Paket wurde nicht installiert, eine Konfigurationsdatei ist falsch eingerichtet oder fehlt, …

bei so spezifischen Problembeschreibungen lässt sich auch gut helfen. Von den Anleitungen deines Apfelcasts habe ich nur das hier gefunden:

Da wird keine Datenbank optimiert, keine Caches eingerichtet etc. Da sind die Tutorials von Usern hier schon besser. Falls es ein Raspberry Pi ist, könnte NextcloudPi interessant sein.

:+1: Da hilft es eventuell gleichzeitig in die Logdateien des Servers zu schauen. Wenn du etwas aufrufst, und in den Logdateien fängt es erst nach 5-10s zu rattern an, dann ist da definitiv ein Problem mit den Netzwerkeinstellungen.

2 Likes

Bitte installiere Nextcloud immer nur auf LTS-Versionen also aktuell Ubuntu 20.04 LTS. Mit Ubuntu 21.?? wirst du nicht glücklich. Schau dir die Updatepolitik von Ubuntu an. Ubuntu 21.?? ist eine Entwicklerversion.

Am besten du installierst neu.
Lese gerne:
https://www.howtoforge.com/tutorial/how-to-install-nextcloud-on-debian-10
https://www.howtoforge.com/tutorial/ubuntu-nginx-nextcloud/

Du kannst die Anleitungen kombinieren. Z. B. Apache2 mit Ubuntu oder nginx mit Debian.

Lass das weg. Brauchst du nicht und kostet höchstens Performance. Kannst ja mal echte Provider fragen, ob die das auch einsetzen. :wink: Vor allen wenn du Ubuntu21 einsetzt ist Fail2Ban ein schlechter Witz.

1 Like

Ok, danke.

Ich habe jetzt mal testweise die Installation komplett neu gemacht (nach Rieger) und die Performance ist viel viel besser. Gibt es irgendeine elegante Möglichkeit, dass ich sowohl die Dateien, als auch die User mit allen Berechtigungen von einem Proxmox Container (ja, die ursprüngliche NC-Installation ist auf einem Container) zur neu installierten VM zu übertragen?

Grundsätzlich ist das möglich, habe es selbst aber noch nie gemacht. Hier ist beschrieben wie man vorgehen muss… https://docs.nextcloud.com/server/latest/admin_manual/maintenance/migrating.html

1 Like

@TheUnexpectedGuest
Du kannst dir mal Backup und Restore durchlesen auch wenn das eher allgemein gehalten ist und sich auf identische Software bezieht.

Ja, ich probier das nachher mal aus. Ich bin mir nur nicht sicher, ob es Probleme macht, weil die alte NC Installation unter Apache läuft und die neue unter Nginx.

Also, ich habe soweit alles geschafft: Nextcloud komplett neu installiert - jetzt gehen die Probleme aber erst los, die ich vorhin nicht hatte.

Ich habe zuerst versucht die neue Installation hinter einem Reverse Proxy zu betreiben und auf NC kein LEts Encrypt installiert, weil das schon auf dem Reverse Proxy läuft. Die neue Installation läuft ca. 5 min sehr gut und schnell und dann ist die Verbindung weg, wenn ich meine Domain aufrufe.

Ich habe dann den Reverse Proxy aussen vor gelassen und Lets Encrypt auf NC installiert (nach Anleitung von Rieger). Auch hier läuft NC dann sehr flüssig, aber auch nur 5 min. Dann ist die Verbindung auch hier weg. Neustart von der Maschine bringt nichts - ich kann nextcloud über die Domain und auch Lokal nicht mehr aufrufen.

Irgendeine Idee? Ich verstehe nicht, dass die Verbindung nach 5 mind abreist, obwohl es schon läuft?

Ein Wort. Fail2ban

sudo fail2ban-client stop

Die Sache ist bei fail2ban man muß ganz genau wissen was man macht. Ich setze das teil schon etliche Jahre mit über 250 cloud Benutzer ein. Nie Probleme.
Und schaut man sich die Liste an nur am einen Tag zugreifen wollen muß jeder selber für sich entscheiden ob er das für seine Privaten Daten einsetzen will.

Status for the jail: sshd
|- Filter
| |- Currently failed: 44
| |- Total failed: 13810
| - File list: /var/log/auth.log - Actions
|- Currently banned: 297
|- Total banned: 3075

Das wars tatsächlich - unglaublich und vielen Dank! Wie kann ich das dauerhaft stoppen, also nicht, dass bei einem Neustart das wieder mitgestartet wird?

Ist zwar keine Lösung des eigentlichen Problems aber du kannst entweder den Dienst deaktivieren:

sudo systemctl disable fail2ban

oder es gleich ganz deinstallieren:

sudo apt remove fail2ban

Danke. Aber was ist das eigentliche Problem?

Wenn es ohne Fail2ban läuft, scheint dich wohl Fail2ban geblockt zu haben. Kann es sein, dass noch andere Geräte im lokalen Netz vorhanden sind, auf denen z.B. die Nextcloud App oder der Sync Client läuft, mit einem Login, welches noch auf der ersten Nextcloud-Installation gemacht wurde? Eventuell wurden ja die geblockt.

Zur Erklärung: Wenn dein Router NAT Loopback / NAT Reflection macht, kommen für Fail2ban alle Geräte im lokalen Netz mit der selben IP daher, nämlich der des Routers. Wenn dann ein Gerät geblockt wird, sind gleich alle Geräte im lokalen Netz geblockt.

Das ist aber nur eine Idee, was es evtl. gewesen sein könnte. Evtl. kannst du ja mal ins log schauen unter /var/log/fail2ban.log, falls das noch vorhanden ist.

so sieht das log-file aus - die 101 ist die IP von meinem Reverse Proxy

2022-01-31 13:23:32,390 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:32
2022-01-31 13:23:33,237 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:33
2022-01-31 13:23:34,437 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:34
2022-01-31 13:23:36,040 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:36
2022-01-31 13:23:36,787 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:36
2022-01-31 13:23:36,790 fail2ban.actions [40297]: NOTICE [nextcloud] Ban 192.168.1.101
2022-01-31 13:23:38,391 fail2ban.filter [40297]: INFO [nextcloud] Found 192.168.1.101 - 2022-01-31 13:23:38
2022-01-31 13:27:30,930 fail2ban.server [40297]: INFO Shutdown in progress…
2022-01-31 13:27:30,930 fail2ban.observer [40297]: INFO Observer stop … try to end queue 5 seconds
2022-01-31 13:27:30,951 fail2ban.observer [40297]: INFO Observer stopped, 0 events remaining.
2022-01-31 13:27:30,992 fail2ban.server [40297]: INFO Stopping all jails
2022-01-31 13:27:30,992 fail2ban.filter [40297]: INFO Removed logfile: ‘/var/log/auth.log’
2022-01-31 13:27:31,012 fail2ban.filter [40297]: INFO Removed logfile: ‘/var/log/nginx/error.log’
2022-01-31 13:27:31,013 fail2ban.filter [40297]: INFO Removed logfile: ‘/var/log/nextcloud/nextcloud.log’
2022-01-31 13:27:31,073 fail2ban.actions [40297]: NOTICE [nginx-http-auth] Flush ticket(s) with iptables-multiport
2022-01-31 13:27:31,074 fail2ban.actions [40297]: NOTICE [sshd] Flush ticket(s) with iptables-multiport
2022-01-31 13:27:31,074 fail2ban.jail [40297]: INFO Jail ‘sshd’ stopped
2022-01-31 13:27:31,129 fail2ban.actions [40297]: NOTICE [nextcloud] Flush ticket(s) with iptables-multiport
2022-01-31 13:27:31,138 fail2ban.actions [40297]: NOTICE [nextcloud] Unban 192.168.1.101
2022-01-31 13:27:32,276 fail2ban.jail [40297]: INFO Jail ‘nginx-http-auth’ stopped
2022-01-31 13:27:32,277 fail2ban.jail [40297]: INFO Jail ‘nextcloud’ stopped
2022-01-31 13:27:32,277 fail2ban.database [40297]: INFO Connection to database closed.
2022-01-31 13:27:32,278 fail2ban.server [40297]: INFO Exiting Fail2ban

was trotzdem noch seltsam ist. Auf der Nextcloud Startseite bekomme ich die Info, dass es mehrere ungültige Anmeldeversuche von meiner IP Adresse gab - was aber nicht stimmt

Irgend etwas in deinem Netzwerk versucht sich mit ungültigen Credentials an deiner Nextcloud anzumelden und triggert die Brute Force Protection der Nextcloud. Das ist warscheinlich das selbe Gerät oder die selbe Software, welche schon vorher Fail2ban getriggert hat.

Meinst du mit “deiner IP” die lokale IP deines Computers?

Die …101 ist die iIP vom Reverse Proxy.

Die Frage bezog sich auf diesen Satz. Kommt dort immer noch die IP des Reverse Proxy? Ich dachte du hättest den in der Zwischenzeit aussen vor gelasen?