ich habe Nextcloud hinter auf einem Apache2 laufen.
Dieser ist intern über die Adresse http://[IP]/nextcloud erreichbar.
Vor dem Apache2 habe ich ein nginx Proxy Manager laufen.
Die Subdomains werden von mir bei all-inkl.com gehostet und die IP wird über ddclient immer wieder aktualisiert.
Ich habe aber nun ein kleines Problem. Ich würde gerne über die Adresse “http://nextcloud.[Domain].de” die Instanz von Nextcloud aufrufen. Dies funktioniert auch wunderbar, aber es gibt da dieses eine kleine Problem. Wenn ich die Adresse aufrufe, wird immer das Subfolder mit angegeben, z.B. “http://nextcloud.[Domain].de/nextcloud”. Ich würde das aber gerne nur über die Subdomain aufrufen.
Folgende Einstellungen habe ich beim nginx Proxy Manager vorgenommen:
<Directory /var/www/html/nextcloud>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error-nextcloud.log
CustomLog ${APACHE_LOG_DIR}/access-nextcloud.log combined
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
</IfModule>
Vielleicht kann mir einer sagen, was ich falsch mache?
Danke im Voraus,
Robert
/* Edit: Ich weiß https wäre besser, aber aktuell würde ich erstmal das ganze per http zum laufen bringen um Fehler durch https zu vermeiden. Nach dem ich das ganze zum Laufen gebracht habe, kommt https dran.
Ich nutze den Nginx ProxyManager selber nicht, aber kannst du im zweiten Bild das Feld “Define location” nicht einfach leer lassen? Oder den Eintrag im Tab “Custom locations” ganz löschen bzw. dort erst gar nichts hinzufügen?
Wenn ich “Define location” einfach leer lasse, dann zeigt die Subdomain nicht mehr auf den internen Link http://interneIP/nextcloud und ich müsste die Seite immernoch mit dem Zusatz nextcloud aufrufen. in etwa so http://nextcloud.domain.de/nextcloud.
Wenn ich den Tab “Custom locations” komplett lösche, dann zeigt die Subdomain nur noch auf webserver auf port 80 und mehr nicht. Dafür habe ich schon einen andere Subdomain.
Mal eine blöde Frage… Befindet sich das alles auf der gleichen Maschine? Nextcloud, die andere Website und der NGINX Proxy Manager?
Wenn die Antwort ja ist, würde ich dir empfehlen je einen VirtualHost für die Nextcloud und die andere Website zu erstellen und SSL direkt mit dem Apache zu machen. Einen Reverse Proxy brauchst du eigentlich nur, wenn du mehrere Dienste auf verschiedenen Maschinen bzw verschiedenen lokalen IP Adressen und/oder Ports am laufen hast. Btw: Apache kann auch Reverse Proxy.
Nein, der nginx läuft auf einem raspi und der apache auf einem anderen.
Ich habe auch schon überlegt, weitere virtuelle hosts anzulegen, aber ich wollte es dynamischer haben und nicht so statisch.
Ok. Aber dann macht es imho nicht viel Sinn, die Nextcloud in einem Subfolder der Hauptomain zu betreiben und das ganze dann mit einem Reverse Proxy, quasi wieder gerade biegen zu wollen …auch im Hinblick darauf, dass du noch weitere Dinge darauf betreiben willst.
Ich würde mit einer sauberen Config neu starten. So dass du deine Cloud erst einmal ohne Reverse Proxy via http://nextcloud.deinedomain.tld von überall her erreichst. Danach kannst du immer noch entscheiden, ob du SSL über einen vorgeschalteten Reverse Proxy machen willst, oder direkt auf dem Apache.
Das Portforwarding auf denjenigen Raspi umbiegen, auf dem die Nextcloud läuft. Oder zumindest dafür sorgen, dass du ihn von intern über den Domainnamen “nextcloud.deinedomain.tld” erreichst.
Alle VirtualHosts auflisten:
ls /etc/apache2/sites-available
alle in der Liste inkl. der default.conf deaktivieren:
Ich sage nicht, dass es nicht auch anders funktionieren kann. Aber es ist imho die sauberste und unter dem Strich auch die einfachste und übersichtlichste Lösung. Vorallem wenn du mehrere Sites auf dem gleichen Server hosten möchtest und diese jeweils über einen seperaten Domainnamen bzw eine separate Subdomain erreichbar sein sollen. (site1.deinedomain.tld, site2.deinedomain.tld usw…)
danke erstmal.
Ich habe jetzt komplett das Ganze umgedacht. Der Apache wird nun ohne ReverseProxy angesprochen und muss sagen, das Ganze macht es jetzt einfacher. LetsEncrypt machte ein paar Probleme, aber die sind auch nun behoben.
Den Reverse Proxy werde ich wohl erstmal nicht mehr verwenden. Vielen Dank für die Hilfe.