NGINX Konfiguration location /.well-known/matrix/server {...} über DSM Reverse Proxy GUI

User6554

Benutzer
Mitglied seit
09. Jan 2021
Beiträge
46
Punkte für Reaktionen
10
Punkte
8
Liebe Community,

ich betreibe eine VM auf meiner DiskStation 920+, auf der ein Matrix Synapse Server läuft. Die VM selber betreibt ein NGINX Reverse Proxy mit der folgenden Einstellung der domain.com.conf Datei im /etc/nginx/conf.d/... Verzeichnis:

Captura de pantalla 2022-02-23 a las 11.31.40.png

Eigentlich möchte ich Port 80 und 443 vom Router auf meine DiskStation weiterleiten, sodass ich dann den Traffic auf die jeweilige Applikation/VM/Sonstiges mit dem DSM Reverse Proxy weiterleiten kann. Das hat bisher immer gut geklappt.

Zum Problem:
Wenn ich den Port 80 und 443 am meinem Router direkt an die VM weiterleite, funktioniert die Anwendung auf der VM wie gewünscht.
Wenn ich aber Port 80 und 443 an meine DiskStation zeigen lassen und den DSM Reverse Proxy auf die VM zeigen lasse (siehe das folgende Bild aus DSM), erreiche ich die VM über Port 80 und 443 nicht wie gewünscht.

Captura de pantalla 2022-02-23 a las 11.32.22.png


Leider komme ich an dieser Stelle nicht weiter... denn:
Damit die Applikation auf der VM wie gewünscht funktioniert, sind die folgenden Zeilen in der matrix.domain.com.conf-Datei von NGINX auf der VM zwingend notwendig (deswegen habe ich es auch in die .conf-Datei auf der VM eingefügt, siehe erstes Bild):

Captura de pantalla 2022-02-23 a las 11.33.17.png

Meine Idee, warum das Problem entsteht: Weil ich diese Zeilen nicht in die GUI des DSM Reverse Proxy eingeben kann bzw. nicht eingegeben habe, funktioniert die Umleitung auf die VM über den DSM Reverse Proxy nicht, es funktioniert nur, wenn ich Port 80 und 443 direkt vom Router auf die VM-IP-Adresse weiterleite.
Deswegen richtet sich meine Frage auch allgemeiner an das Problem: Wie kann ich über die GUI den DSM Reverse Proxy z.B. mit solchen Zeilen mit "location /.well-known/matrix/server {...}" konfigurieren, die ich auf der VM in der /etc/nginx/conf.d/... Datei einfach hinzufügen würde, erweitern?


Ich bin wirklich über jeden Tipp dankbar!
Gruß!
 
Zuletzt bearbeitet:

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.503
Punkte für Reaktionen
1.093
Punkte
194
Um es kurz zu fassen: über die GUI kommst du hier nicht weiter. Du kannst allenfalls über SSH eine Verbindung zur DS aufbauen und solltest dort die entsprechenden Einträge hinterlegen können. Wenn du dich häufiger mit derlei Experimenten beschäftigst, solltest du dir einen nginx über Docker einrichten und die Einstellungen dort tätigen. Eine VM halte ich übrigens hier ebenfalls für Overkill, wenn es um das Betreiben einer einzelnen Applikation geht. Synapse funktioniert auch über Docker.
 

User6554

Benutzer
Mitglied seit
09. Jan 2021
Beiträge
46
Punkte für Reaktionen
10
Punkte
8
@Ulfhednir
Vielen Dank für deinen Tipp.
1. Das heißt, ich stelle einen NGINX Docker Container auf, machen dort meine Konfigurationen wie ich sie brauche, oder?
2. Dies bedeutet aber auch, dass ich am Router Port 80 und 443 nicht an die DiskStation weiterleite, sondern an meinen Docker Container, richtig? Wie kann ich das aber machen? Der Docker Container hat nur einen zugewiesenen Port auf der IP der DiskStation. Wie kann ich die Portweiterleitung vom Router bis zum Docker Container realisieren?
3. Hättest du noch bitte einen Tipp, wie ich dann die LetsEncrypt Zertifikate mit dem Docker Container up-to-date halten kann? Bisher habe ich das immer mit der DSM Einstellung -> Sicherheit -> Zertifikate gelöst. Die DiskStation hielt die Zertifikate für den DSM Reverse Proxy up-to-date.

Ich danke dir sehr für deine Hilfe!
 
Zuletzt bearbeitet von einem Moderator:

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.503
Punkte für Reaktionen
1.093
Punkte
194
@User6554

Zu 1.) Kurz und knapp: Ja
Zu 2.) Der Port 80 und 443 sind für die DS reserviert. Die kannst bzw. solltest du auch nicht ändern. Du legst einen Nginx-Docker-Container im Bridge-Modus an und verknüpfst diesen z.B. 9080:80 und 9443:443. Dein Portforwarding im Router wäre dann 80:9080 und/oder 443:9443.
Damit kommst du von extern über die Standardports ran und verwendest damit perspektivisch NICHT mehr den Reverse Proxy der DS.
Zu 3.) Ich verwende eine nginx-Integration von linuxserver.io - https://hub.docker.com/r/linuxserver/swag
Diese enthält u.A. einen certbot, welcher beim Start bzw. über Cronjob automatisch die Erneuerung der LE-Zertifikate übernimmt. Dabei funktionieren auch Wildcard-Zertifikate (*.), insofern dein Domainprovider die ACME-Challenge über DNS unterstützt. Bei Netcup ist das jedenfalls der Fall.
Der beste Zugewinn ist aber die Integration mit Authelia. Damit kannst zu jeglichem Reverse-Proxy-Eintrag eine 2FA integrieren. Damit kannst du quasi Seiten ohne Login sicher machen - oder für bestehende Logins noch einen Security-Layer dazuschalten. Die Einrichtung ist aber etwas komplexer.
 

User6554

Benutzer
Mitglied seit
09. Jan 2021
Beiträge
46
Punkte für Reaktionen
10
Punkte
8
@Ulfhednir

Ich werde sie heute Nachmittag in Ruhe studieren, ich glaube, dann sollte ich das hinbekommen.
Danke nochmal, die Info hat mir sehr geholfen!
Gruß
 
Zuletzt bearbeitet von einem Moderator:

User6554

Benutzer
Mitglied seit
09. Jan 2021
Beiträge
46
Punkte für Reaktionen
10
Punkte
8
Hat funktioniert!
Ich habe es zwar nicht mit Docker gemacht sondern mit einer Ubuntu Linux VM, die den GUI-Reverse Proxy von DSM ersetzt. Hier konnte ich den ReverseProxy (NGINX) so konfigurieren, wie ich ihn brauche.
 
Zuletzt bearbeitet von einem Moderator:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat