HAProxy Weiterleitung zum nextcloud-Server
-
@viragomann danke für das Feedback.
Der Nextcloud-Server läuft nicht in einem Container. Ich habe auf der Synology nextcloud "richtig" installiert. Dort gibt es dann einen virtuellen host (falls Du das meinst) auf der Web Station. Der dort eingetragene Hostname ist mycloud.mydomain.de und der Link geht auf das Verzeichnis meinpfad/index.php. Bisher konnte ich aus dem Internet die web-Adresse eingeben und landete über DynDNS und Port 443 auf die Synology.
Nun habe ich die pfsense und dachte über HAProxy auf den Server zu kommen. Wenn es ohne HAProxy ginge, wäre das für mich auch eine Lösung. -
@alcamar said in HAProxy Weiterleitung zum nextcloud-Server:
Der dort eingetragene Hostname ist mycloud.mydomain.de und der Link geht auf das Verzeichnis meinpfad/index.php. Bisher konnte ich aus dem Internet die web-Adresse eingeben und landete über DynDNS und Port 443 auf die Synology.
Du meinst, du gibst mycloud.mydomain.de ein und kommst auf der Webinterface der Synology und um auf Nextcloud zu gelangen, benötigst du mycloud.mydomain.de/meinpfad/index.php?
Verstehe ich das richtig? -
@viragomann genau. Nach Eingabe von mycloud.mydomain.de kommt gleich das Anmeldefenster der Nextcloud. Den Pfad selbst gibt der Anwender nirgendwo ein und weiß im Zweifelsfalls gar nicht, wo er landet.
-
@alcamar said in HAProxy Weiterleitung zum nextcloud-Server:
genau.
Sorry, ich blick da nicht mehr durch.
Du schreibst "genau" und sagst anschließend genau das Gegenteil aus. Das passt für mich nicht.Nach Eingabe von mycloud.mydomain.de kommt gleich das Anmeldefenster der Nextcloud.
Das ist doch das, was du haben möchtest, oder?
Den Pfad selbst gibt der Anwender nirgendwo ein und weiß im Zweifelsfalls gar nicht, wo er landet.
Das verstehe ich gar nicht. Welchen Pfad?
Wie auch immer, wenn auf der Synology direkt ein Webserver läuft (ich kenne das System nicht) und man auf diesem auch andere virtuell Webserver betreiben kann, sollte kein Reversproxy davor nötig sein.
Ein Reversproxy hat den Zweck, die Anfragen vom internet an ein lokale IP-Portkombination (deine WAN IP) auf mehrere Backend-Webserver zu verteilen.
Wenn bei dir alles auf einem Webserver läuft, nicht in einer VM oder in einem Container, ist das nicht nötig.
Du musst eben jeder Serverkonfiguration den Hostnamen mitteilen, auf den sie lauschen soll.Aber wie das dann genau zu konfigurieren wäre, kann dir wohl besser die Synology Community beantworten.
-
@viragomann @viragomann Mit Pfad meine ich die Verzeichnisablage wo auf der Synology die Nextcloud-Dateien sind: /volume1/web/nextcloud. Darin befindet die die index.php. Auf der Synology selbst ist ein virtueller Host definiert, der sagt: Anfragen auf die Internet-Adresse mycloud.mydomain.de meinen immer den Aufruf von index.php im Verzeichnis.
Der Benutzer gibt nur die Internet-Adresse ein, wohin er dann verzweigt wird, bzw. womit er verlinkt ist, ist für ihn egal. Für mich eventuell nicht.
Ich dachte, das der HAproxy darauf reagiert, dass mycloud.mydomain.de aufgerufen wird (frontend) und leitet diese Anfrage dann an das backend.
Eigentlich muss die Anfrage direkt an die Synology geroutet werden. Die Frage ist nur wie. Da diese Funktion bisher bei der Fritzbox lag, vermute ich die Lösung in der pfsense und nicht auf der Seite von Synology. -
@alcamar
Mit Firewall > NAT > Port Forward?Das meinst du? Leitet Anfragen von außen auf den internen Host.
-
@viragomann das hört sich vielversprechend an.
Folgende Infos muss ich da loswerden können:https://mycloud.mydomain.de -> https://10.10.1.100/nextcloud/index.php
dann kann es funktionieren, weil ich intern entweder mit der IP-Adresse oder Host-Override und mycloud.domain.de zur Anmeldung an Nextcloud gelange.
Kann ich Firewall>NAT>Port Forward mit meiner markierten Infozeile füttern? -
@alcamar
Nein, das geht eben nicht mit Port Forwarding und auch sonst nicht sonst mit einer nativen pfSense.
Das wäre nur auf Layer 7 möglich, also ja, mit einem HTTP Reversproxy.Aber nochmals, auf
mycloud.mydomain.de
einen bestimmten virtuellen Server zu betreiben und auf
whatever.mydomain.de
einen anderen, beherrscht heute jeder Webserver.Warum solltest du das auf einem Reversproxy machen wollen, was deutlich mehr Aufwand erfordert und am Ende vielleicht nicht, wie erhofft, funktioniert.
Konfiguriere den Webserver so, dass Nextcloud via mycloud.mydomain.de aufrufbar ist.
Falls das nicht möglich ist, was ich nicht annehme, lass es in einer VM oder in einem Container laufen. Sollte doch auf dem NAS auch gehen.
Dafür gibt es fertige Images.Außerdem falls das NAS-Webinterface auch auf Port 443 lauscht, würde ich mir erst mal ernsthafte Gedanken darüber machen, wie ich es absichern kann, damit da zum Sturm darauf geblasen wird.
Auch hierfür wäre das Synology Forum der geeignetere Ort, um Info einzuholen. -
@viragomann said in HAProxy Weiterleitung zum nextcloud-Server:
Konfiguriere den Webserver so, dass Nextcloud via mycloud.mydomain.de aufrufbar ist.
Ist es ja.
@viragomann said in HAProxy Weiterleitung zum nextcloud-Server:
Außerdem falls das NAS-Webinterface auch auf Port 443 lauscht,
Nein, deswegen habe ich ja die pfsense. Die lauscht auf 443 und leitet sämtliche Anfragen auf diesem Port auf die dedizierten Server, z.B. nextcloud (mycloud.mydomain.de).
Ich vermute, dass das alles gar kein Problem ist, und ich denke es ist nur ein Mini-Eintrag an einer Stelle, die ich aber (noch) nicht blicke.
-
@alcamar said in HAProxy Weiterleitung zum nextcloud-Server:
Konfiguriere den Webserver so, dass Nextcloud via mycloud.mydomain.de aufrufbar ist.
Ist es ja.
Wohl eher nicht, wenn du /nextcloud/index.php hinten dranhängen musst, um auf Nextcloud zu kommen.
Nein, deswegen habe ich ja die pfsense. Die lauscht auf 443 und leitet sämtliche Anfragen auf diesem Port auf die dedizierten Server, z.B. nextcloud (mycloud.mydomain.de).
Ja, alle Anfragen, die auf der WAN IP am Port 443 ankommen werden auf die IP des NAS auf Port 443 weitergeleitet. Aber die Anfragen werden weder analysiert noch manipuliert.
Wenn das NAS selbst auf Port 443 lauscht, wäre es auch aus dem Internet erreichbar.Ich weiß nicht, wie der Synology Webserver zu konfigurieren ist. Normalerweise wird in der Webserverkonfiguration das Webroot-Verzeichnis angegeben. Damit leitet der Webserver alle ankommenden Anfragen auf seinen Hostnamen in dieses Verzeichnis.
Wenn in diesem Verzeichnis eine seiner Default-Datien liegt, wie index.htm, index.php, etw., liefert er diese automatisch an den Client, ohne dass sie speziell in dem URL angegeben werden muss.Heißt also, mycloud.mydomain.de zeigt in das Nextcloud-Verzeichnis, da liegt die index.php und der Webserver führt diese aus.
Damit muss der Client nur mycloud.mydomain.de in seine Adresszeile eingeben.Genau das sollte auf dem Synology auch möglich sein.
-
@viragomann ich denke, dass Du es besser auf den Punkt gebracht hast, als ich.
Webroot ist der Ausdruck für das was ich Pfad genannt habe. Das ist der Startpunkt mit den Default-Dateien.@viragomann said in HAProxy Weiterleitung zum nextcloud-Server:
Heißt also, mycloud.mydomain.de zeigt in das Nextcloud-Verzeichnis, da liegt die index.php und der Webserver führt diese aus.
Damit muss der Client nur mycloud.mydomain.de in seine Adresszeile eingeben.genau.
Ich habe es nun mit HAProxy hingebogen. Kann das hier dokumentieren, falls es ähnliche unbedarfte wie mich in Zukunft gibt. Ich kämpfe aber noch mit Zertikaten beim CALdav. Eigentlich müsste nur die pfsense Zertifikate jonglieren, oder?
Der Zugriff auf die Dateien in der Cloud geht problemlos, sowohl über die App als auch über den Browser-Zugriff.Deinen Punkt hinsichtlich Sicherheit des Ports 443 habe ich mir für die nächsten Überlegungen vorgemerkt. Danke auch dafür!
-
@alcamar said in HAProxy Weiterleitung zum nextcloud-Server:
Kann das hier dokumentieren, falls es ähnliche unbedarfte wie mich in Zukunft gibt.
Warum nicht? Nachdem der Threadtitel schon darauf hinweist, könnten Leute das finden.
Allerdings ist deine Konstellation wohl eher eine Seltenheit. Wie gesagt, üblicherweise läuft ein Webserver heutzutage nicht in einem virtuellen Verzeichnis.
Wenn HAproxy würde ich alle Anfragen einfach weiterleiten lassen und den Rest den Backendserver machen lassen. Dafür gibt es jede Menge Anleitungen.Ich kämpfe aber noch mit Zertikaten beim CALdav. Eigentlich müsste nur die pfsense Zertifikate jonglieren, oder?
So wäre es wünschenswert. Funktioniert leider nicht immer. Ich weiß aber nicht, wie das bei Nextcloud ist. Meine betreibe ich nicht hinter einem Proxy.
Aber bezüglich DAV und HAproxy habe ich schon Threads gesehen. Aber ich denke, hier würdest du mit den beiden Suchbegriffen im Netz rascher brauchbare Ergebnisse finden als hier.
Die könnte man dann auf die Konfiguration in der pfSense GUI "übersetzen".Deinen Punkt hinsichtlich Sicherheit des Ports 443 habe ich mir für die nächsten Überlegungen vorgemerkt.
Wenn du es geschafft hast, dass HAproxy die Anfragen in das virtuelle Verzeichnis von Nextcloud leitet und keine anderen zulässt, sollte es soweit eh sicher sein. Abgesehen natürlich, dass dir klar sein muss, dass die Nextcloud im Internet steht und damit ordentliche Zugangspasswörter braucht und aktuell gehalten werden muss.