Nextcloud mit Reverse Proxy

Moin zusammen,

wieder eine Woche vergangen und ich komme leider von alleine nicht drauf…
Daher bitte ich um Hilfe :confused:

Möchte Nextcloud in einem LXC installieren und von außen mit dem bereits vorhandenem Nginx Reverse Proxy (läuft in Docker) erreichen.

Habe gefühlt alle Anleitungen durch. Aber das eigentliche Ziel konnte ich bislang nie erreichen

Habe auch nicht nicht herausfinden können, ob die Installation mit Apache2 oder Nginx für diese Konstellation besser ist?

Z.b. die schon oft erwähnte Anleitung von C.Rieger
Nextcloud 23 Installationsanleitung mit Apache2 - Carsten Rieger IT-Services (c-rieger.de)

Die Zertifikat Einstellungen muss ich ja weglassen da das der Reverse Proxy übernimmt?
nano /etc/apache2/mods-available/http2.conf //führt das ohne SSL zu Problemen?

nano /etc/apache2/sites-available/001-nextcloud.conf

<VirtualHost *:80>
ServerName ihre.domain.de   //    IP wo Nextcloud installiert wird?
ServerAlias ihre.domain.de     // ??
ServerAdmin mail@domain.de   // löschen
DocumentRoot /var/www/html/nextcloud
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =ihre.domain.de
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

nano /etc/apache2/sites-available/001-nextcloud-le-ssl.conf Das müsste ich dann ja weglassen?

Wie müsste /html/nextcloud/config/config.php aussehen.

Wie geschrieben. Habe wirklich sehr viel probiert…

Danke für die Unterstützung!

wenn du bereits docker verwendest warum nimmst du nicht das docker container von Nextcloud? auch wenn es nicht falsch ist, finde ich es besser unterschiedliche Technologien nicht zu mischen…

Konfiguration der verbreiteten reverse proxies findest du hier:

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

So wieder von vorne. ich poste mal ein paar Daten. Würde mich freuen wenn ich einen Tipp bekomme :slight_smile:

Installiert ist nun Ubuntu 20.04 im LXC
PHP8 mit den notwenigen erweiterungen
MariaDB 10.5
Apache 2.4.41

*sudo nano /var/www/nextcloud/config/config.php*


<?php
$CONFIG = array (
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'cloud.domian.de',          **// meine Domain**
    2 => '192.168.1.3',                  **// IP wo NC installiert ist** 
    3 => '192.168.1.6',                       **//mein Revere Proxy**
  ),
  'trusted_proxies' =>
  array (
    0 => '192.168.1.6',   // **mein Reverse Proxy**
  ),
  'log_type' => 'file',
  'logtimezone' => 'Europe/Berlin',
  'loglevel' => 2,
  'logfile' => '/var/log/nextcloud/nextcloud.log',
  'datadirectory' => '/data/nextcloud/',
  'skeletondirectory' => '/data/nextcloud/skeleton',
  'filelocking.enabled' => 'true',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'redis' =>
  array (
    'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
    'timeout' => 1.5,
  ),
  'default_language' => 'de',
  'default_locale' => 'de_DE',
  'default_phone_region' => 'DE',
  'trashbin_retention_obligation' => '15, 30',
  'updater.release.channel' => 'stable',
  'overwrite.cli.url' => 'https://subdomain.domain.tld/',
  'overwriteprotocol' => 'https',
  'htaccess.RewriteBase' => '/',
  'instanceid' => 'ocr7v07nykxd',
);

sudo nano /etc/apache2/sites-available/nextcloud.conf

<VirtualHost *:80>
    # ServerAdmin admin@domain.tld
     DocumentRoot /var/www/nextcloud/
    # ServerName subdomain.domain.tld
     ServerAlias 192.168.1.3

     #Alias /nextcloud "/var/www/nextcloud/"
     #Fix für __Host-prefix

     <Directory /var/www/nextcloud/>
        Options FollowSymlinks MultiViews
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
</VirtualHost>

Bin hauptsächlich nach der Anleitung https://www.schreiner.pro/?p=143#comment-209 vorgegangen
PHP install von C.Rieger Tutorial.
Die DB ist aber Lokal

So wie es jetzt ist:
unter 192.168.1.3 kommt das Install Interface (http) von Nextcloud. Sobald ich da meine Daten eintrage ist es vorbei…

Meldung im Browser: Beim Verbinden mit 192.168.1.3 trat ein Fehler auf. PR_END_OF_FILE_ERROR

Einrichtung über Domin geht…?? Warum???

Könnt ihr mir dabei bitte helfen

Edit:
Die Medungen werden angezeigt. Aber denke das ist was anderes?

    Der "Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens "15552000“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen ↗ erläutert ist.

    Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/caldav" aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.
    Dein Webserver ist nicht richtig konfiguriert, um "/.well-known/carddav" aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.

heisst das wenn du du den setup per cloud.domian.de startes/durcharbeitest kommst du zum schluss und hast eine funktionierende cloud?

  • wenn ja, was ist das Problem?

vermutlich entsteht das Problem durch diese conig:

'overwrite.cli.url' => 'https://subdomain.domain.tld/',

damit weist du die NC alle URLs/redirections für die adresse https://subdomain.domain.tld/<gewünschte ressource> zu erstellen und beim setup wirst du irgendwann dorthin weitergeleitet und kannst verm nicht auf diese Adresse zugreifen.

die beiden Werte 'trusted_domains' und 'overwrite.cli.url' sollten zusammen passen.

btw: trusted_domains braucht den Eintrag 3 für RP nicht (und normalerweise auch nicht localhost und locale IP). Dort werden Domain eingetragen für die sich NC “zuständig” fühlt… d.h. hostnamen, die der Client aufruft (bzw der Reverse Proxy zum NC weitergibt)

Das schreibt c-rieger auch:

Hinweis: Proxmox-User sollten eine eigene VM und keinen LXC-Container verwenden. Viele Benutzer berichten von Problemen, die aus den Besonderheiten der LXC-Container resultieren.

Das ist fast richtig. Das Setup geht. Vom PC (Wo ich installiert habe) komme ich nun über cloud.domian.de auf die Cloud. Per App oder Safari geht es nicht???

‘overwrite.cli.url’ => ‘https://subdomain.domain.tld/’,

Muss ich hier einfach meine Domain eintragen? Edit: Habe ich gemacht. Keine änderung

Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens "15552000“

Die einstellung habe ich auch nicht gefunden.

Die beiden caldav /carddav Meldungen liegen soweit ich das verstanden habe an der Reverse Proxy Einstellung?

Danke!!! :slight_smile:

Habe einen Mix aus Nextcloud 23 Installationsanleitung mit Apache2 - Carsten Rieger IT-Services (c-rieger.de)

und Nextcloud im Proxmox LXC auf Debian 11 mit PHP-FPM und externer MySQL Datenbank hinter einen Reverse Proxy installieren ► Schreiners Gedankenarchiv

Wobei ich mehr letzteres benutz habe

Über einen anderen PC geht es auch. Nur via app nicht?

Sonderinstallationen ergeben immer Sonderprobleme.
Das kenne ich.

Leider kann ich dir nicht weiter helfen.

Was wäre den eine gute Anleitung die zu 100% funktioniert?
Ich hab ewig gebraucht um soweit zu kommen :dizzy_face:

Wenn ich die Anleitung von C.Rieger benutzte klappt das mit dem Reverse Proxy nicht. Oder ich bin zu blöd das einzustellen

Aber wie auch immer wäre es schön zu wissen warum ich von eine PC auf die cloud komme und mit der App und dem Handy nicht…

// Mit der Windows App geht es vom pc aus

Alles was im selben Netz ist geht durch. Alles andere wird geblockt.
Ist die Firewall Firewall die bei dem Tutorial von C. Rieger installiert wurde?

Kann ich die deaktivieren? ufw disable… hat nichts gebracht

Ich würde dir empfehlen einen Gang zurück zu schlaten und das System in Ruhe anzuschauen. Es bringt dich selten weiter viele Tutorials durchzuarbeiten (vor Allem unterschiedliche zu kombinieren), im schlimmsten Fall hebelst du Ideen und Massnahmen beider Tutorials aus. Ich versuche immer zu verstehen was im Tutorial passiert, im Zweifel ein 2., 3., 4. durchgehen bis man versteht wie die Sachen zusammenhängen… meistens hast du recht wenige Einstellungen die wichtig sind z.B. Hostnamen der Cloud, Datenbank, externe Domain, der Rest ist Finetuning…

Und ganz wichtig: bitte poste nicht endlos Links zu unterschiedlichen Tutorials… es ist absolut positiv dass du selbst Informationen besorgst und versuchst diese umzusetzen… hier im Forum wird kaum jemand Lust haben 3-4 Tutorial durchzugehen, kombinieren und “deinen” Fehler zu finden. Versuche das Problem so einfach wie möglich einzugrenzen, beschreiben und dann eine konkrete Frage zu stellen - so hast du beste Chancen ein zielführende Antwort zu bekommen.

Wenn du sagst Windows Client geht, heisst es schon mal dass deine Cloud mit der DB Anbindung, Zugriff aufs Dateisystem und Reverse Proxy funktioniert. Mache jetzt keinen Stress und schaue es dir in Ruhe an… meiner Erfahrung nach kann Android Probleme machen wenn man aus dem internen Netz mit externer FQDN auf die Could zugreift, weil Android seit einiger Zeit IPv6 bevorzugt… und wenn deine Domain IPv6 auflöst, was zB im Router/Host Firewall nicht freigegeben ist bekommst du ein Problem. Versuche es aus dem Internet - wenn es geht kann Rebind Protection oder IPv6 das Problem sein und Split-Brain DNS die Lösung…

Android ist generell etwas :face_vomiting: wenn es um TLS geht - aus irgeneinem Grund ist Google super scharf darauf perfektes TLS in jeder Situation zu erzwingen - da kann HSTS, falsches Cypher schon ein Thema werden… wie gesagt versuche es hicht übers Knie zu brechen… schaue dir jede Situation in Ruhe an und mit mehreren Clients… manchmal muss man nach einer Änderung einfach etwas warten, bis DNS, browser und was auch immer für Caches abgelaufen sind (nicht mal Reboot garantiert bei Smartphone’s Abhilfe)

Da baut man evtl. viele Fehler ein, das kann ich bestätigen.

Die Releaseständer von php usw. sind auch von Relevanz.

Da verknoten sich meine Synapsen. :slight_smile:

c-rieger schreibt:

HINWEIS:
Aufgrund eines Bugs in MariaDB 10.6.6 kommt es aktuell zu massiven Problemen mit dem Repository. Aus diesem Grund wurde vorübergehend das MariaDB – Paket 10.6 durch 10.5 ersetzt und die my.cnf entsprechend angepasst.

Guten Abend. Danke für das Feedback

Habe das ja leider x mal Probiert und mir nach den ersten Fehlerversuchen auch versucht zu verstehen was da überhaupt eingegeben wird und vor allem Warum.
Im Großen und Ganzen habe ich die Notwendigkeit der schritte verstanden. Die ganzen Optimierungen nicht. Aber denke das der Rieger sich was dabei gedacht hat.

Installiert ist PHP8 mit den Modulen wie bei C. Rieger beschrieben,
MariaDb 10.5 und Apache, sowie ufw und Fail2ban.

Nextcloud ist in dem LXC mit der ip 192.168.1.3 Installiert.
Über Nginx Reverse Proxy wird die Domain weitergeleitet. Hier sind noch keine weiteren Einstellungen gemacht worden.

Was geht ist der Zugriff aus dem Netz 192.168.1.0/24. Mit allen Client’s

Alle anderen VLan’s oder aus dem Mobilen Internet wir nicht mal das Interface angezeigt. (Timeout wird angezeigt)

Sind noch Infos oder Log Daten hilfreich?

Nochmals Danke für die Hilfe!!

Hallo, wo lag dein Fehler?
Was hast Du anders gemacht?

es scheint wohl irgendwo etweder eine Firewall blockt oder die Route zu fehlt … du solltest die ganze Kette Schritt für Schritt an jedem Punkt kontrollieren: Router (Port Forward), Reverse Proxy, Nextcloud - sieht man den Zugriff, gibt’s Fehler (zB die Anfrage wird zu falschen Zeil weitergeleitet…)?

kannst du mir bitte kurz beschreiben wie ich das am besten Testen kann?
Bin leider nicht weiter…
Warum auch immer geht es mit dem Android handy von meiner Frau und mit einem PC bei schwiegereltern.
Mit dem iPhone von meinem Soh und meinem geht der Zugriff nicht…

Das ist mir zu hoch

Leider ist der Fehler noch nicht behoben

Hallo, hast du mal versucht für deine Nextcloud im Nginx Proxy Manager bei Advanced → Custom Nginx Configuration folgendes hinzuzufügen: “proxy_hide_header Upgrade;”
Das sollte die Probleme ab IOS 14 beheben. Falls das die restlichen Probleme löst, wäre ich daran interessiert eine kurze Zusammenfassung zu hören, wie (welche Anleitung/Einstellungen) du die Nextcloud letzendlich im LXC mit dem NPM zum laufen gebracht hast.

1 Like

grafik

Wäre das so richtig?
Leider klappt das nicht

Wenn alles läuft schreibe ich detaliert was ich wo eingetragen habe

Wenn das der Reverse Proxy auf deine Nextcloud IP ist und du anschließend noch mit save bestätigt hast dann ja. Hast du den in den Nginx Proxy Manager Einstellungen für deine Nextcloud Port 443 mit https und Websocket ausgewählt? Ich geh davon aus das du den Port (TCP 80 & 443) in deinem Router für die Docker IP Adresse auf der Nginx Proxy Manager läuft auch freigegeben ist? SSL habe ich mit Force SSL und HTTP/2 Support aktiviert. So klappt es jedenfalls bei meiner die in einer VM läuft. Der Fix kommt übrigens aus diesem Thread: https://help.nextcloud.com/t/nextcloud-nginx-proxy-manager-cant-connect-from-ios/95861